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部署站点时偶尔也会看到这个错误。通常第二次重新部署该网站会修复该网站。