2015-09-04 11 views
5

मेरे पास एक एएसपी.Net 5 एमवीसी 6 प्रोजेक्ट है जो कई गैर-डीएनएक्स कक्षा पुस्तकालयों का उपयोग करता है। ये libs dnu wrap के माध्यम से लपेटे गए हैं, और सभी काम आईआईएस एक्सप्रेस या स्वयं-होस्ट किए गए ऐप पर मिलते हैं। हालांकि आईआईएस 8 पर यह पता चलता है त्रुटिएएसपी.Net 5 आईआईएस: निम्नलिखित निर्भरताओं को हल करने में विफल

लक्ष्य ढांचे 'DNX, संस्करण = v4.5.1' के लिए निम्नलिखित निर्भरता को हल करने में विफल: अपनी परियोजनाओं

की सूची

वर्तमान क्रम लक्ष्य ढांचा: 'DNX, संस्करण = v4.5.1 (dnx451) ' संस्करण: 1.0.0-beta7-15532 प्रकार: CLR वास्तुकला: 64 ओएस नाम: विंडोज ओएस संस्करण: 6.3.9600.0

यदि मैं डीएनएक्स 4.6 का उपयोग करता हूं तो वही त्रुटि (मैंने यह देखने के लिए डाउनग्रेड किया है कि यह 4.5.1 के साथ काम करता है)।

हालांकि libs निम्न स्थान पर पाया जा सकता है: सही nuget पैकेज संरचना के साथ \ approot \ पैकेज (Dnu प्रकाशित उन्हें पैक)

तो मैं कैसे मदद करते हैं आईआईएस मेरी libs पाते हैं?

कदम पुन: पेश करने:

  1. बनाएं 2 परियोजनाओं के साथ समाधान: नई ASP.Net MVC आवेदन और हमेशा की तरह वर्ग पुस्तकालय (नहीं पैकेज)

  2. Dnu के माध्यम से

    लपेटें वर्ग पुस्तकालय लपेट

  3. एमवीसी

  4. वेब अनुप्रयोग प्रकाशित करें (यदि विजुअल स्टूडियो से प्रकाशित हो तो संदर्भ वर्ग लाइब्रेरी तों काम नहीं, Dnu) --runtime सक्रिय प्रकाशित

  5. IIS में वेब साइट बना सकते हैं और

अद्यतन प्रकाशित वेब एप्लिकेशन के wwwroot फ़ोल्डर में बात का उपयोग करें: समस्या यह है कि पता चला आईआईएस में नहीं है, लेकिन डीएनएक्स में है। यदि मैं वेब साइट प्रकाशित करता हूं और फिर इसे Microsoft.AspNet.Server.WebListener के माध्यम से चलाता हूं तो मुझे वही त्रुटि मिलती है। ऐसा लगता है कि डीएनयू प्रकाशित लपेटा गया परियोजनाओं के साथ ठीक तरह से काम नहीं कर रहा है।

हालांकि विंडोज सेवा चलाने पर यह मामला नहीं है। मेरे पास एक कंसोल ऐप (पैकेज) है जो समान पुस्तकालयों का संदर्भ देता है, मैं इसे --no-source के साथ प्रकाशित करता हूं और फिर इसे sc.exe के माध्यम से विंडोज सेवा के रूप में स्थापित करता हूं और यह सभी अपेक्षा के अनुसार काम करता है।

+0

क्या आपके पास असेंबली 'डीएनएक्स' संस्करण 4.5.1 के लिए डीएलएल की एक प्रति है? – Luke

+0

आपका क्या मतलब है? मेरे पास डीएनएक्स 4.5.1 के लिए बनाए गए सभी डीएलएल हैं और किसी भी डीएनएक्स संस्करण के लिए निर्माण कर सकते हैं। यह तीसरी पार्टी डीएलएल नहीं है, यह सिर्फ कक्षा पुस्तकालय परियोजनाओं – Vitaly

उत्तर

3

मेरी समस्या यह थी कि प्रोजेक्ट.जेसन में मेरे पास कोई लाइब्रेरी संस्करण नहीं था, बस एक खाली तार। यह विजुअल स्टूडियो के तहत काम करता है, लेकिन वीएस के बिना दौड़ते समय नहीं। मेरे पास ऐसे संदर्भ थे क्योंकि आरसी में संदर्भ संदर्भ मेनू संदर्भ नहीं जोड़ता है, इसलिए मैंने इसे मैन्युअल रूप से जोड़ा और यह काम किया। तो यहाँ कैसे आईआईएस अंतर्गत चलाने के लिए वेब साइट को सेट करने के कदम हैं:

1) लपेटें आप गैर DNX परियोजनाओं के साथ "Dnu रैप" आदेश

2) यदि आप गैर करने के लिए DNX परियोजना से संदर्भ जोड़ें -DNX प्रोजेक्ट और जांचें कि आपके पास प्रोजेक्ट में एक सही संस्करण है।जेसन (रैप \ yourproject \ project.json में समान संस्करण होना चाहिए)।

"frameworks": { 
    "dnx46": { 
     "dependencies": { 
      "MyLib": "1.0.0-*"     
     } 
} 

3) प्रकाशित Dnu के साथ अपनी वेबसाइट को प्रकाशित

dnu publish .\src\Web --out <outputfolder> 

4) क्रम पैरामीटर के साथ फिर से प्रकाशित करें: यहाँ एक उदाहरण है। इस बार रनटाइम को आउटपुट फ़ोल्डर में कॉपी किया गया है। लेकिन इस समय wwwroot फ़ोल्डर नहीं बनाया गया है, अच्छा हमने पहले चरण 3 में प्रकाशित किया है ;-)। आप चरण 3 के आदेश और 4

dnu publish .\src\Web --out <outputfolder> --runtime dnx-clr-win-x64.1.0.0-beta7

5 बदल सकते हैं) appSettings में 2 मापदंडों के लिए outputfolder\wwwroot\web.config और प्रकार मूल्यों पर जाएँ: DNX-संस्करण और DNX-clr। यहाँ उदाहरण है:

<appSettings> 
    <add key="bootstrapper-version" value="1.0.0-beta7" /> 
    <add key="runtime-path" value="..\approot\runtimes" /> 
    <add key="dnx-version" value="1.0.0-beta7" /> 
    <add key="dnx-clr" value="clr" /> 
    <add key="dnx-app-base" value="..\approot\src\Web" /> 
</appSettings> 

6) IIS में नई वेब साइट बनाएँ, क्रम नेट v4.0

7) के साथ एप्लिकेशन पूल चुनें अपनी नई वेबसाइट प्वाइंट outputfolder \ wwwroot फ़ोल्डर

8) जांचें कि सब कुछ काम कर रहा है

+0

बीटा 8 उपयोगकर्ताओं और ऊपर के लिए, ये दिशानिर्देश सहायक नहीं हो सकते हैं। बीटा 8 एक अलग तैनाती मॉडल का उपयोग करता है जो HttpPlatformHandler देशी आईआईएस मॉड्यूल पर निर्भर करता है, जो "कोई प्रबंधित कोड" पर निर्भर करता है। 'dnu publ' 'लेना चाहिए- - runtime dnx-clr-win64.1.0.0-beta8' लेकिन web.config को इस पोस्ट में उल्लिखित किसी भी कुंजी की आवश्यकता नहीं होगी। – stephen

संबंधित मुद्दे