生产部署后使用Telerik.Web.UI进行HttpParseException

时间:2012-06-29 19:28:56

标签: asp.net exception telerik production-environment sitefinity

发布0分钟前(永久链接)

我们今天早上进行了部署,四台服务器中的一台没有响应,但有一个例外:

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 个答案:

答案 0 :(得分:1)

听起来您可能有另一个网站在telerik dll上有锁定,或者现有网站在部署期间没有释放文件上的先前锁定。

我会:

  1. 回收应用程序池,如果仍然没有响应,那么:
  2. 重新启动特定网站,如果仍然没有响应,那么:
  3. 重启所有托管网站的IIS。
  4. 如果最后一个选项不可行,我会重新启动可能正在使用Telerik.web.ui dll的所有其他网站(通常位于此处的子文件夹中:C:\ Program Files \ Telerik [Radcontrols或sitefinity相关的子文件夹]这里] )。

    使用MSBuild&时,我偶尔也会看到这个错误。 Webdeploy部署站点。通常第二次重新部署网站会修复它。