2015-02-05 114 views
2

在大量使用的其他無故障的ASP.NET MVC 3 Web應用程序上重新啓動應用程序池後訪問任何URL(路由)時,出現以下異常。只有在應用程序池回收後,MVC應用程序中的CheckVirtualFileExists異常

事實:

  • IIS 7
  • .NET 4.0經典模式應用程序池(僅在游泳池應用程序)
  • 通過HTTPS訪問由其他後端的Web服務應用程序
  • 無代碼更改,網站正在進行常規29小時自動 多年來在相同代碼上循環使用,現在自動循環使用 禁用,以使網站保持最新狀態
  • 應用程序池回收(或重新啓動服務器)會導致網站無法
  • 必須重新部署的網站(複製所有文件/文件夾預編譯建立 成物理路徑)得到它的循環後再次合作
  • 我們正趕上/記錄錯誤的Application_Error事件
  • 在事件沒有未處理的異常登錄
  • 任何試圖訪問任何航線/ URL生成異常

詳情:

HTTPErr Example: 2015-02-05 08:43:36 66.XXX.XXX.14 32224 10.XXX.XXX.185 443 HTTP/1.1 POST /IdentityToken/Endpoint.aspx - 6 Connection_Abandoned_By_ReqQueue MOBILEWEBSERVICE 
Exception: 
Timestamp: 2/5/2015 4:21:03 AM 
Message: HandlingInstanceID: 438c9949-1ad2-49c4-9c7c-928bce03fd37 
<Exception> 
    <Description>An exception of type 'System.Web.HttpException' occurred and was caught.</Description> 
    <DateTime>2015-02-05 04:21:03Z</DateTime> 
    <ExceptionType>System.Web.HttpException, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</ExceptionType> 
    <Message>The file '/Policies/Endpoint.aspx' does not exist.</Message> 
    <Source>System.Web</Source> 
    <HelpLink /> 
    <Property name="WebEventCode">0</Property> 
    <Property name="ErrorCode">-2147467259</Property> 
    <Property name="Data">System.Collections.ListDictionaryInternal</Property> 
    <Property name="TargetSite">Void CheckVirtualFileExists(System.Web.VirtualPath)</Property> 
    <Property name="HResult">-2147467259</Property> 
    <StackTrace> at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath) 
    at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) 
    at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) 
    at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) 
    at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) 
    at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) 
    at System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) 
    at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) 
    at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)</StackTrace> 
    <additionalInfo> 
    <info name="MachineName" value="SERVERNAME" /> 
    <info name="TimeStamp" value="2/5/2015 9:21:03 AM" /> 
    <info name="FullName" value="Legacy, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null" /> 
    <info name="AppDomainName" value="/LM/W3SVC/6/ROOT-1-130676015007079933" /> 
    <info name="ThreadIdentity" value="" /> 
    <info name="WindowsIdentity" value="IIS APPPOOL\MOBILEWEBSERVICE" /> 
    </additionalInfo> 
</Exception> 

enter image description here

+0

「我得到下面的異常」 當你做*什麼*? – usr 2015-02-07 11:34:13

+0

「我們正在捕獲代碼中的錯誤並顯示一條消息」顯示該代碼。根據Google拒絕訪問2147467259。 – usr 2015-02-07 11:34:44

+0

訪問任何網址時我都會遇到異常。這個異常正在被「捕獲」,因爲Application_Error方法在我們然後記錄異常的地方被調用 - 就是這樣。我沒有找到任何有用的信息搜索谷歌的錯誤代碼。 – 2015-02-08 00:38:37

回答

1

要調試CheckFileExists,你可能想使用這樣的事情:

string fileName = "Test.aspx"; 
bool IsExistFile = System.IO.File.Exists(Server.MapPath("./") + fileName); 

if (IsExistFile) 
    Response.Write("Find the file!"); 
else Response.Write("The file is not exist!"); 
相關問題