我正在尝试将elmah用于我的MVC应用程序,并且我已按照wiki上的步骤操作:http://code.google.com/p/elmah/wiki/MVC,但在尝试访问myapp/elmah时仍然如此.axd页面:
404 - 找不到文件或目录.
有人可以帮我吗?
OBS:我的IIS版本是7.5
如果有帮助我发布我的web.config的相关部分:
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
...
</connectionStrings>
<elmah>
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>
<system.web>
...
<httpHandlers>
<remove verb="*" path="*.asmx" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, …Run Code Online (Sandbox Code Playgroud) 我已经让ELMAH在我的(Cassini)开发服务器上工作了,并且非常满意它,但是现在我正试图将所有东西都移到我的生产服务器(IIS7),蜜月看起来就像结束了.
我已经超越了IIS7的"陷阱",坦率地说可以在文档中更好地突出显示,如果我只是使用内存中的日志,那么它可以工作.
但是,我试图让它使用SQL Server日志(就像我在我的开发系统上那样),并且我得到了一个错误:
对象ELMAH_GetErrorsXml上的EXECUTE权限被拒绝
好吧,好吧.我知道如何授予数据库权限,但我真的很难理解我需要授予访问权限的用户和哪些存储过程/表.
让我感到困惑的是,我没有做任何这样的事情让它在我的开发服务器上工作.我能看到的唯一区别是,在我的开发服务器上它似乎连接为NT AUTHORITY\IUSR,而在我的生产服务器上它似乎连接为NT AUTHORITY\NETWORK SERVICE.(它只是使用可信连接,所以我没有明确配置它来做到这一点 - 我认为它与Web服务器有关).更新:我已经确定,因为我正在使用Cassini,它实际上是以我(管理员)而不是IUSR登录,这解释了为什么我没有得到任何权限问题.
在我的开发服务器上,IUSR帐户是公共数据库角色的成员,并且可以访问所需的数据库(再次作为"公共").没有明确授予对象级权限.[见上面的更新 - 这是无关紧要的].
在我的生产服务器上,我以完全相同的方式添加了NETWORK SERVICE(公共数据库角色,显式访问数据库为"public").然而,我得到了这个权限错误.为什么?!![请参阅上面的更新 - 我没有获得权限错误的唯一原因是因为我作为管理员运行].
而且,当然,如果它在本地工作的事实只是"运气",我将需要知道授予访问权限的SP /表.我的猜测是所有3个SP而不是表,但是(再次)看到一些使这个显式的文档会很好.
我创建了一个Web应用程序并添加了一个用于错误记录的ELMAH模块.它正在使用我的本地开发环境:当我访问URL http:// localhost:52584/elmah.axd时,它显示了一个有效的页面:

当我在天蓝色门户网站上传后测试它时,它会显示一个错误页面:

我需要为Azure平台做什么特定配置吗?
此外,我已经在我的Web应用程序上进行了表单身份验证,因此当我尝试elmah.axd时,它将重定向到登录页面,我需要先登录.我想删除该表单身份验证,尤其是对于elmah.axd.我怎样才能实现这一目标?