我有一个托管在Azure App Services中的网站,下面有三个虚拟应用程序。所有三个虚拟应用程序都引用了Elmah。当我在< system.webServer>下添加elmah模块时,其中一个路径设置为'/'的虚拟应用程序会出现问题。标记:
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
<remove name="StackifyHttpModule_Net40" />
<add name="StackifyHttpModule_Net40" type="StackifyHttpTracer.StackifyHttpModule,StackifyHttpTracer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=93c44ce23f2048dd" preCondition="managedHandler,runtimeVersionv4.0" />
</modules>
如果我删除了三个elmah模块,该网站工作正常,如果我在那里,网站的所有部分都会死于白色屏幕并显示消息:
由于发生内部服务器错误,无法显示该页面。
如果我添加&lt; httpErrors existingResponse =“PassThrough”&gt;标签,我只是一个白色的屏幕。事件日志中没有任何内容显示。
我还尝试在添加模块之前删除模块(比如stackify模块),但仍无用。
有人可以告诉我如何解决这个或正在发生的事情吗?
谢谢!
答案 0 :(得分:1)
好的,在发布后我立即尝试了另一件事,在我添加的所有虚拟应用程序中:
<remove name="ErrorLog" />
<remove name="ErrorMail" />
<remove name="ErrorFilter" />
在添加模块之前,一切正常。我想模块中添加的根虚拟应用程序和子路径虚拟应用程序试图再次添加它们并导致错误。
这似乎只发生在&lt; system.webServer&gt;中。模块不是&lt; system.web&gt;我认为httpModules是有意义的,因为webServer将是一个服务器级别的东西,而web只适用于特定的虚拟应用程序。