0

發佈1分鐘前(永久)HttpParseException與Telerik.Web.UI後生產部署

今天上午,我們做了部署,以及四臺服務器一個反應遲鈍,與此異常:

Event Type: Warning 
Event Source: ASP.NET 2.0.50727.0 
Event Category: Web Event 
Event ID: 1310 
Date:  6/29/2012 
Time:  6:53:12 AM 
User:  N/A 
Computer: [REMOVED] 
Description: 
Event code: 3006 
Event message: A parser error has occurred. 
Event time: 6/29/2012 6:53:12 AM 
Event time (UTC): 6/29/2012 10:53:12 AM 
Event ID: f89c468e41794ddeb38756d2b524f072 
Event sequence: 247 
Event occurrence: 80 
Event detail code: 0 

Application information: 
    Application domain: /LM/W3SVC/926158372/ROOT-3-129854401924948620 
    Trust level: Full 
    Application Virtual Path:/
    Application Path: C:\[REMOVED]\ 
    Machine name: [REMOVED] 

Process information: 
    Process ID: 504 
    Process name: w3wp.exe 
    Account name: [REMOVED] 

Exception information: 
    Exception type: HttpParseException 
    Exception message: Could not load file or assembly 'Telerik.Web.UI, Version=2010.2.826.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4' or one of its dependencies. The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0x80070020) 

Request information: 
    Request URL: [REMOVED]/sitefinity/cmsentrypoint.aspx 
    Request path: /sitefinity/cmsentrypoint.aspx 
    User host address: 10.2.0.248 
    User: 
    Is authenticated: False 
    Authentication Type: 
    Thread account name: [REMOVED] 

Thread information: 
    Thread ID: 15 
    Thread account name: [REMOVED] 
    Is impersonating: False 
    Stack trace: at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding) 
    at System.Web.UI.TemplateParser.ParseReader(StreamReader reader, VirtualPath virtualPath) 
    at System.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPath virtualPath) 
    at System.Web.UI.TemplateParser.ParseInternal() 
    at System.Web.UI.TemplateParser.Parse() 
    at System.Web.UI.TemplateParser.Parse(ICollection referencedAssemblies, VirtualPath virtualPath) 
    at System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType() 
    at System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) 
    at System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() 
    at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() 
    at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) 
    at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) 
    at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) 
    at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) 
    at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) 
    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& completedSynchronously) 

任何想法會導致這種情況?它在重新啓動的時候修復了,我們之前沒有看到它。

回答

1

這聽起來像你可能有另一個網站鎖定telerik DLL或現有的網站沒有釋放在部署過程中的文件上一個鎖。

我想:

  1. 回收應用程序池,如果仍沒有響應,那麼:
  2. 重啓的具體網站,如果仍沒有響應,那麼:
  3. 重新啓動IIS,所有託管的網站。

如果最後一個選項不可行,我會重新啓動所有其他可能使用Telerik.web.ui dll的網站(通常位於這裏的子文件夾中:C:\ Program Files \ Telerik [Radcontrols或sitefinity相關的子文件夾])。

我在使用MSBuild & Webdeploy部署站點時偶爾也會看到這個錯誤。通常第二次重新部署該網站會修復該網站。