2012-10-31 15 views
60

लोड नहीं किया जा सका मैंने अपनी वेबसाइट को किसी सर्वर पर अपलोड करने का प्रयास किया। यह मेरे स्थानीय होस्ट के साथ ठीक काम कर रहा था, इसलिए मैंने सर्वर पर अपने लोकहोस्ट wwwroot फ़ोल्डर में सब कुछ अपलोड किया और कनेक्शन स्ट्रिंग बदल दी।फ़ाइल या असेंबली 'Microsoft.Web.Infrastructure,

लेकिन इस त्रुटि है:

Exception information: 
    Exception type: InvalidOperationException 
    Exception message: The pre-application start initialization method Start on type RouteDebug.PreApplicationStart threw an exception with the following error message: Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.. 
    at System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods) 
    at System.Web.Compilation.BuildManager.CallPreStartInitMethods() 
    at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) 

Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. 
    at RouteDebug.PreApplicationStart.Start() 

परियोजना nopcommerce था।

इस त्रुटि को हल करने के लिए क्या किया जाना चाहिए?

+0

कॉपी करना संभवतः काम नहीं करता है क्योंकि मेजबान की समान निर्भरताएं स्थापित नहीं होती हैं, इस मार्गदर्शिका को देखें: http://www.iwantmymvc.com/2011-03-23-bin-deploy-aspnet-mvc- 3-विज़ुअल-स्टूडियो –

उत्तर

48

आपको अपनी परियोजना के साथ डीएलएल शामिल करना होगा और इसके साथ एक संदर्भ भी जोड़ना होगा। MVC3 Deployment Dependency Problems

+0

सर्वर को "_bin_deployableAssemblies" floder भी अपलोड करना है ?? – user1348351

+0

इसे संभालने के कुछ अलग तरीके हैं और यह इस बात पर निर्भर करता है कि आप कैसे तैनात कर रहे हैं। लेकिन अगर आप अपनी पोस्ट में लिंक पर क्लिक करें और फिर जाँच चिह्न आपको लगता है कि आप इसे ठीक से सेट अप करता है, तो _bin_deployableAssemblies से DLLs स्वचालित रूप से जब आप एक कर का ध्यान रखा जाना चाहिए देखेंगे के साथ शीर्ष जवाब पर ब्लॉग के माध्यम से जाना है, तो तैनाती (या वेब तैनाती)। [यहाँ ब्लॉग मैंने कहा करने के लिए कड़ी है।] (Http://www.iwantmymvc.com/2011-03-23-bin-deploy-aspnet-mvc-3-visual-studio) –

+4

ब्लॉग कि इस लिंक इस प्रकार है प्रतीत होता है कि अब उपलब्ध नहीं है। यह उत्तर - http://stackoverflow.com/a/12683392/137474 मेरे लिए काम किया। – Baldy

4

से https://www.microsoft.com/web/platform/

वेब प्लेटफ़ॉर्म स्थापित करने की कोशिश आशा है कि यह मदद करता है।

+0

यह मेरे लिए भी काम करता है। –

1

आप सर्वर आपके आवेदन की मेजबानी पर ASP.NET MVC ढांचे डाउनलोड करना होगा:

यहाँ पहले से ही ढेर पर एक समान मुद्दे के लिए एक लिंक है। यह एक त्वरित फिक्स है बस यहां डाउनलोड करें और इंस्टॉल करें (यह एमवीसी 3 ढांचा http://www.asp.net/mvc/mvc3 है), फिर बूम करें कि आप जाने के लिए अच्छे हैं।

22

इंस्टॉल करें AspNetMVC3ToolsUpdateSetup here से डाउनलोड मैंने पाया कि भले ही यह मेरे देव बॉक्स पर काम किया, विधानसभा परियोजना शामिल नहीं किया गया संदर्भ

+0

उत्तर स्वीकार किया जाना चाहिए! – AlwaysConfused

23

जोड़े बिना इस समस्या का समाधान होगा। NuGet में Microsoft.Web.Infrastructure के लिए खोजें और इसे वहां से इंस्टॉल करें। फिर, सुनिश्चित करें कि इसमें स्थानीय चयनित कॉपी है।

+1

एक ही समस्या है, यह CopyLocal = सच, पता नहीं क्यों यह काम नहीं किया गया था। आपके समाधान ने मेरी समस्या हल की :) –

0

बहुत आसान समाधान:

दृश्य स्टूडियो में, उपकरण के लिए जाना/पुस्तकालय पैकेज प्रबंधक/पैकेज प्रबंधक कंसोल

<PM> Install-Package Microsoft.Web.InfraStructure 

एक अच्छा समय

21

यह एक संदर्भ सफाई करने के बाद पता चला है है , यह Microsoft.Web.Infrastructure हटा दिया गया, लेकिन packages.config फ़ाइल से नहीं। Package Manager Console का उपयोग करके इसे फिर से जोड़ने का प्रयास करने के बाद, विजुअल स्टूडियो का कहना है कि यह पहले से स्थापित है जो गलत है क्योंकि इसे हटा दिया गया था।

मैं तो packages.config फ़ाइल

<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" /> 

में कोड की पंक्ति हटा दिया और आदेश को फिर से

PM> Install-Package Microsoft.Web.Infrastructure 

भाग गया इस के बाद, अब यह ठीक काम करता है।

5

रिशेर्पर ने एक अप्रयुक्त संदर्भ के रूप में Microsoft.Web.Infrastructure का पता लगाया है इसलिए मैंने इसे हटा दिया। स्थानीय रूप से ठीक काम कर रहा था लेकिन फिर मुझे देव को प्रकाशित करने के बाद एक ही त्रुटि मिली।

निष्कर्ष, सावधान रहना जब को हटाने संदर्भ Resharper

+0

यह वही था जो मैंने किया था। – AndreFeijo

0

द्वारा के रूप में अप्रयुक्त चिह्नित यहाँ मेरी परिदृश्य था।

मैं परियोजनाओं एक युक्त एक बहु परियोजना समाधान था, बी, सी .. एन

परियोजना बी कि selectlist वस्तुओं के लिए एक कारखाने निहित एक कोड पुस्तकालय था।

परियोजना के विकास में अपेक्षा के अनुसार चलते हैं, लेकिन जब हमारे परीक्षण परिवेश को प्रकाशित मैं हो रही थी त्रुटि आप का सामना कर रहे थे:

Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. 

क्या हुआ था nuget पैकेज प्रबंधक के माध्यम से था, मैं गलती से स्थापित किया था " माइक्रोसॉफ्ट ASP.NET MVC "जिसके लिए निर्भरता स्थापित:

  • Microsoft.AspNet.Razor
  • Microsoft.AspNet.WebPages

कम और देखें, Microsoft.AspNet.WebPages "Microsoft.Web.Infrastructure" पर निर्भर करता है।

मेरा समाधान उपरोक्त वर्णित तीन पैकेजों (एमवीसी, रेजर, वेबपृष्ठ) को अनइंस्टॉल कर रहा था, फिर संदर्भ> राइट क्लिक> असेंबली> एक्सटेंशन> System.Web.MVC पर राइट क्लिक करें।

15

उत्तरों की संख्या के बावजूद मैं एक और जोड़ दूंगा जो आईएमएचओ चीजों को थोड़ा स्पष्ट बनाता है।

Rob और wrightmail पहले ही उल्लेख किया गया है Microsoft.Web.Infrastructure एक NuGet पैकेज है (लिंक आवश्यक नहीं है, आपके पास NuGet पैकेज प्रबंधक में है)।

जाहिर है, यह आपके प्रोजेक्ट द्वारा संदर्भित किया गया था और अचानक गायब हो गया। कारण बड़ी संख्या में मौजूद हो सकता है, लेकिन महत्वपूर्ण बात यह है कि बावजूद आप द्वारा Automatic Package Restore in Visual Studio सक्षम बना सकती:

  • , समाधान (समाधान Explorer में संदर्भ मेनू) के लिए NuGet पैकेज की व्यवस्था करें
  • अनुमति दें NuGet लापता संकुल डाउनलोड करने के लिए (सेटिंग),
  • स्वचालित रूप से (सेटिंग) दृश्य स्टूडियो में निर्माण के दौरान संकुल लापता के लिए जाँच,

कुछ संकुल एक मैनुअल पुनः स्थापित की आवश्यकता हो सकती। मुझे पता नहीं है कि NuGet को क्या भ्रमित करता है, शायद मैन्युअल रूप से संदर्भ को हटा रहा है, लेकिन यहां समाधान है जो मैं आमतौर पर ऐसे मामलों में लागू करता हूं। निम्नलिखित PM कंसोल एक पैकेज को बहाल करने में मदद करता है (संभवतः मौजूदा करने के लिए नया एक अपडेट नहीं हो), जबकि मूल संस्करण संरक्षण:

Update-Package Microsoft.Web.Infrastructure -Reinstall

संस्करण संरक्षण की आवश्यकता हो सकती है, तो आप गलती से अपने नए के साथ एक मौजूदा पैकेज के ऊपर लिख नहीं करना चाहते संस्करण जो संभवत: आपके प्रोजेक्ट में उपयोग की जाने वाली "पुरानी" कार्यक्षमता को हटा देता है।

और, एक सबूत, थोड़ा लंबा एक के बाद भी, उस संस्करण में परिवर्तन नहीं होता है, यहाँ उत्पादन जब आदेश क्रियान्वित किया जाता है:

PM> Update-Package Microsoft.Web.Infrastructure -Reinstall 
Attempting to gather dependencies information for multiple packages with respect to project 'Samples.NuGet\DemoApp\DemoApp', targeting '.NETFramework,Version=v4.5.2' 
Attempting to resolve dependencies for multiple packages 
Resolving actions install multiple packages 
... 
Package removal starts here... 
... 
Removed package 'Microsoft.AspNet.Web.Optimization 1.1.3' from 'packages.config' 
Successfully uninstalled 'Microsoft.AspNet.Web.Optimization 1.1.3' from DemoApp 
Removed package 'WebGrease 1.5.2' from 'packages.config' 
Executing script file 'D:\Projects\DemoApp\packages\WebGrease.1.5.2\tools\uninstall.ps1' 
Successfully uninstalled 'WebGrease 1.5.2' from DemoApp 
... 
More package removals here. Omitted for brevity... 
... 
Removed package 'Microsoft.Web.Infrastructure 1.0.0.0' from 'packages.config' 
Successfully uninstalled 'Microsoft.Web.Infrastructure 1.0.0.0' from DemoApp 
... 
More package removals here. Omitted for brevity... 
... 
Removed package 'Antlr 3.4.1.9004' from 'packages.config' 
Successfully uninstalled 'Antlr 3.4.1.9004' from MvcLenseApp 
Package 'Antlr.3.4.1.9004' already exists in folder 'D:\Projects\Lense.Mvc5\packages' 
--- Install packages (in reverse order) --- 
Package 'Antlr.3.4.1.9004' already exists in folder 'D:\Projects\DemoApp\packages' 
Added package 'Antlr.3.4.1.9004' to 'packages.config' 
Successfully installed 'Antlr 3.4.1.9004' to DemoApp 
... 
More package installs here. Omitted for brevity... 
... 
Package 'Microsoft.Web.Infrastructure.1.0.0' already exists in folder 'D:\Projects\Lense.Mvc5\packages' 
Added package 'Microsoft.Web.Infrastructure.1.0.0' to 'packages.config' 
Successfully installed 'Microsoft.Web.Infrastructure 1.0.0' to MvcLenseApp 
... 
More package installs here. Omitted for brevity... 
... 
Package 'WebGrease.1.5.2' already exists in folder 'D:\Projects\DemoApp\packages' 
Added package 'WebGrease.1.5.2' to 'packages.config' 
Executing script file 'D:\Projects\DemoApp\packages\WebGrease.1.5.2\tools\install.ps1' 
Successfully installed 'WebGrease 1.5.2' to DemoApp 
Package 'Microsoft.AspNet.Web.Optimization.1.1.3' already exists in folder 'D:\Projects\DemoApp\packages' 
Added package 'Microsoft.AspNet.Web.Optimization.1.1.3' to 'packages.config' 
... 
End of package re-install. 
... 
Successfully installed 'Microsoft.AspNet.Web.Optimization 1.1.3' to DemoApp 
PM> 
बेशक

यदि आप सभी संकुल पुनः स्थापना करना चाहते आप NuGet here और here में अपडेट/इंस्टॉल कमांड से परिचित होने की आवश्यकता हो सकती है।

2

मैं एक ऐसी ही समस्या थी। NuGet ने पैकेज को सफलतापूर्वक इंस्टॉल किया, लेकिन संदर्भ मेरी परियोजना में नहीं जोड़ा गया था।

<PM> Install-Package Microsoft.Web.InfraStructure भी चल रहा है मदद नहीं की के रूप में पैकेज प्रबंधक हुए कहा कि यह पहले से ही

इंस्टॉल किए हुए हैं मैं अंत में यह मैन्युअल रूप से संपादित csproj फ़ाइल और जोड़ने इन लाइनों से जोड़ा रखा:

<Reference Include="Microsoft.Web.Infrastructure"> 
    <HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath> 
    <Private>True</Private> 
</Reference> 

कि समस्या हल ।

+0

मैंने csproj फ़ाइल सत्यापित की है और यह उस फ़ोल्डर को संदर्भित कर रहा था जो समस्या उत्पन्न कर रहा था। उस अतिरिक्त फ़ोल्डर नाम को हटाने से मेरी समस्या हल हो गई – superachu

1

मेरे लिए Microsoft.Web.Infrastructure.dll बिन फ़ोल्डर से याद आ रही थी, यह परियोजना में स्थानीय प्रतिलिपि करने के लिए सेट नहीं था। समाधान और पृष्ठ लोड में किसी अन्य प्रोजेक्ट से डीएलएल की प्रतिलिपि बनाई गई।

0

मैं नहीं जानता कि मेरी परियोजना के साथ क्या हुआ, लेकिन यह DLL करने के लिए गलत पथ संदर्भित किया है। Nuget ने इसे ठीक से स्थापित किया और यह वास्तव में अन्य फाइलों के साथ मेरी फाइल सिस्टम पर था, लेकिन गलत तरीके से संदर्भित किया गया था।

packages फ़ोल्डर मेरी प्रोजेक्ट से दो निर्देशिकाएं मौजूद है और यह केवल ..\packages\ के साथ पथ शुरू करके एक ऊपर जा रहा था। मैंने ..\..\packages\ से शुरू करने के लिए पथ बदल दिया और यह मेरी समस्या को ठीक कर दिया।

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