如何configurationELMAH以使用Windows Azure? 我在Elmah.axd上得到了一个404
我有一个在Windows Azure上运行的ASP.NET MVC Webangular色,并在web.config中正确设置了ELMAH。 我也有我的global.asax忽略* .axd路线。 本地,我可以加载/elmah.axd,但是当我部署到Azure时,我在该页面上获得了一个404。 有没有人得到ELMAH在Azure上工作?
Azure基于Windows Server 2008和IIS7。 这意味着您需要填充web.config文件的system.webServer部分。
包含在elmah源代码中的示例文件包含您需要input的详细信息。
<system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules> <remove name="ScriptModule" /> <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> </modules> <handlers> <remove name="WebServiceHandlerFactory-Integrated"/> <remove name="ScriptHandlerFactory" /> <remove name="ScriptHandlerFactoryAppServices" /> <remove name="ScriptResource" /> <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add name="elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> </handlers> </system.webServer>
在上面的xml块中有2个elmah行,你需要包含这些行,并且一般情况下这个部分应该包含大部分(如果不是全部的话)。
编辑:不再需要,因为这是默认情况下:
为了使Elmah能够正常工作,您还需要在ServiceDefinition.csdef文件中修改以下行:
<WebRole name="WebRole" enableNativeCodeExecution="true">
同时保护文件,只允许用户查看错误日志!
<location path="admin/elmah.axd"> <system.web> <authorization> <allow roles="Administrator" /> <deny users="*" /> </authorization> </system.web> </location>
我想另外(在这里@ mat1t的build议),你可能需要设置远程访问1:
<elmah> <security allowRemoteAccess="0" /> .............. .............. </elmah>