我正在尝试将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添加到asp.net mvc 4应用程序中.日志记录正在运行,现在我正在尝试配置安全性,但elmah没有获取设置,所有用户仍然可以看到日志.
这是一个内部网应用程序,因此我们使用windows集成secuirty.我正在尝试限制访问权限,以便只有domain\log_readers广告组的成员才能读取日志.
我在这里阅读了设置指南:http://code.google.com/p/elmah/wiki/SecuringErrorLogPages,我还阅读了SO和其他论坛上的几篇帖子,这些帖子让我添加了roleManager和WindowsRoleProvider配置一切都无济于事.
这是我的web.config的elmah部分:
<elmah>
<!--
See http://code.google.com/p/elmah/wiki/SecuringErrorLogPages for
more information on remote access and securing ELMAH.
-->
<security allowRemoteAccess="true" />
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/Logs" />
</elmah>
<location path="elmah.axd" inheritInChildApplications="false">
<system.web>
<authentication mode="Windows" />
<roleManager defaultProvider="WindowsProvider"
enabled="true" cacheRolesInCookie="false">
<providers>
<add
name="WindowsProvider"
type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<!--
See http://code.google.com/p/elmah/wiki/SecuringErrorLogPages for
more information on using ASP.NET authorization securing ELMAH.
-->
<authorization>
<allow roles="domain\log_readers"/>
<deny users="*" />
</authorization>
</system.web> …Run Code Online (Sandbox Code Playgroud) 我正在使用Elmah记录异常.如果请求是基于表单的请求(即Content-Type:application/x-www-form-urlencoded),Elmah非常擅长记录请求主体,但是基于JSON的请求,其中内容类型是application/json,请求正文在错误报告中找不到任何地方.任何人都知道我在哪里可以找到这个请求体,以便我可以正确诊断我的异常?
更新:2012-01-03
作为对基于JSON的请求的含义的澄清,这里是一个带有JSON作为请求主体的示例原始HTTP请求:
PUT http://mycompany.com/api/v1.0/me HTTP/1.1
Host: mycompany.com
Content-Length: 20
Content-Type: application/json
{"city":"Vancouver"}
Run Code Online (Sandbox Code Playgroud) 我在我的MVC4应用程序中使用SignalR hub.我添加了ELMAH来处理所有错误.问题是Hub中发生的错误没有记录在ELMAH axd中.有没有办法配置它?
你好我在我的项目中设置了ELMAH,但是我遇到了很多错误
System.Web.HttpException:从客户端(:)检测到一个潜在危险的Request.Path值.
生成:太阳,2013年5月26日21:46:30 GMT
System.Web.HttpException(0x80004005):从客户端(:)检测到潜在危险的Request.Path值.System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)中的System.Web.HttpRequest.ValidateInputIfRequiredByConfig()处于
我想忽略它们,不要发送到我的邮件,而是写在ELMAH DB中.有可能吗?
有没有人有log4net的经验,我一直在看elmah这是伟大的.但我想要更多的控制,即不仅在asp.net中使用日志记录,而且在wpf中也使用日志记录.
Anway我决定看看log4net.
我有两个共享业务逻辑的客户端(wpf和asp.net).
我应该在业务逻辑和客户端中提升事件吗?
我假设业务逻辑将使用app.config/web.config(业务逻辑在另一层 - 一个类项目)
有没有人和elmah一起使用log4net,无论如何你可以让他们共享同一个db表吗?
log4net在我看来是最终的日志框架,但是elmah具有提交所有SERVER变量和堆栈跟踪等的优势
或者也许它可以获得log4net来保存Stacktrace并完全取代elmah?
任何评论都非常感谢
我们在应用程序中使用ELMAH错误异常日志记录.我想让ELMAH对常规用户保持安全,同时仍然可以将其提供给应用程序的管理员/开发人员.
在web.config中使用表单身份验证设置安全性时,您将无法访问RSS源.我希望能够保护ELMAH,但仍然通过身份验证到axd,以便能够从RSS阅读器访问RSS提要(即/elmah.axd/rss).
认为http身份验证是正确的,我可以使用以下url语法访问rss feed http:// username:password@somedomain.com/elmah.axd/rss我假设您需要设置身份验证模式=" windows"在web.config中的特定路径上.弹出的一个问题是如何在虚拟文件上设置凭据?
看看Google 在CodeProject上发布了关于如何使用cookie设置身份验证直通的文章.这是我的问题的一个很好的解决方案吗?
还有另一种方法可以在保持安全的同时更好地访问RSS提要吗?
谢谢.
我正在使用ELMAH来记录我的.net错误.它工作得很好,但我想扩展错误记录以包括客户端错误,即任意JavaScript错误.我可以使用window.onerror事件捕获错误,然后调用.net处理程序(.ashx)来记录elmah中的错误,但这只是我解决问题的小问题.有没有更好的方法将客户端错误记录到elmah?
elmah ×10
asp.net ×4
.net ×3
asp.net-mvc ×3
c# ×2
logging ×2
security ×2
client-side ×1
log4net ×1
signalr ×1
web-config ×1