2012-05-03 11 views
23

के साथ काम करते समय फ़ाइल PrecompiledApp.config नहीं ढूंढ सका। हमारे पास वेबफॉर्म .aspx फ़ाइलों का उपयोग करके सब कुछ के लिए एक एप्लिकेशन है। लैटली हम प्रोजेक्ट में एक नया डीएल छोड़कर निकली पैकेट कार्यक्षमता प्राप्त करने के तरीके के रूप में प्रीकंपिल्ड रेजर व्यू का उपयोग कर रहे हैं। लेकिन अब हमने पाया है कि हमारे पूर्ववर्ती विचार हमारे वर्चुअलपाथप्रोवाइडर्स के साथ संघर्ष करते हैं।प्रीकंपिल्ड किए गए रेजर दृश्यों और वर्चुअलपाथप्रोवाइडर

बाह्य डीएलएस से वर्चुअलपाथप्रोवाइडर्स लोड करते समय एप्लिकेशन सभी अनुरोधों के लिए PrecompiledApp.config लोड करने का प्रयास करता है (और हमें यह नहीं मिला)। प्रदाता प्रतिबिंब के साथ लोड कर रहे हैं। हमारे पास पंजीकरण के समान प्रोजेक्ट में कुछ वर्चुअलपाथप्रोवाइडर्स हैं और वे ठीक काम करते हैं लेकिन जब हम HostingEnvironment.RegisterVirtualPathProvider के साथ बाहरी डीएलएस से प्रदाताओं को पंजीकृत करते हैं तो हमें यह समस्या मिलती है।

यदि हम फ़ाइल PrecompiledApp.config फ़ाइल जोड़ते हैं तो यह _appstart.cshtml और अन्य प्राप्त करने का प्रयास करता है।

  • PrecompiledApp.config
  • _appstart.cshtml
  • _PageStart.cshtml
  • _ViewStart.cshtml
  • दृश्य/_ViewStart.cshtml
  • : हम अपवाद अतीत हो रही करने से पहले नीचे इन सभी फ़ाइलें करने के लिए है
  • विचार/साझा/_ViewStart.cshtml
  • डिफ़ॉल्ट.cshtml

हम डिफ़ॉल्ट.cshtml में समाप्त होते हैं और शेष एप्लिकेशन काम करता है। चूंकि हम apsx-files को डिफ़ॉल्ट के रूप में उपयोग करना चाहते हैं, यह स्वीकार्य समाधान नहीं है। हम भी चिंतित हैं कि इससे अधिक समस्याएं दिखाई देगी क्योंकि हमें पता नहीं है कि यह क्यों हो रहा है।

हम अपने प्रदाताओं को लोड करने की इस तरह की कोशिश की है लेकिन हम अभी भी एक ही त्रुटि मिलती है: http://sunali.com/2008/01/09/virtualpathprovider-in-precompiled-web-sites/

अपवाद:

Could not find file 'C:\MyApp\PrecompiledApp.config'. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.IO.FileNotFoundException: Could not find file 'C:\MyApp\PrecompiledApp.config'. 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 


[FileNotFoundException: Could not find file 'C:\MyApp\PrecompiledApp.config'.] 
    System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +12899479 
    System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath) +2481 
    System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) +229 
    System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) +102 
    System.Web.Hosting.MapPathBasedVirtualFile.Open() +105 
    System.Web.WebPages.BuildManagerWrapper.IsNonUpdatablePrecompiledApp() +157 
    System.Web.WebPages.BuildManagerWrapper..ctor(VirtualPathProvider vpp, IVirtualPathUtility virtualPathUtility) +48 
    System.Web.WebPages.VirtualPathFactoryManager.<.cctor>b__6() +90 
    System.Lazy`1.CreateValue() +12776623 
    System.Lazy`1.LazyInitValue() +355 
    System.Web.WebPages.ApplicationStartPage.ExecuteStartPage(HttpApplication application) +131 
    System.Web.WebPages.WebPageHttpModule.StartApplication(HttpApplication application, Action`1 executeStartPage, EventHandler applicationStart) +98 
    System.Web.WebPages.WebPageHttpModule.InitApplication(HttpApplication application) +75 
    System.Web.WebPages.WebPageHttpModule.Init(HttpApplication application) +268 
    System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +575 
    System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +352 
    System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +407 
    System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +375 

[HttpException (0x80004005): Could not find file 'C:\MyApp\PrecompiledApp.config'.] 
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11700992 
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141 
    System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4869221 

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272 

उत्तर

3

क्या आपको यकीन है कि आपके VirtualPathProvider की fileexists झूठे रिटर्न PrecompiledApp.config के लिए?

IsNonUpdatablePrecompiledApp ध्वज आपके अपवाद को होने से रोकने के लिए, वास्तव में ओपन कॉल करने से पहले vpp पर FileExists को आमंत्रित करता है।

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