Tag: elmah

远程主机关闭连接错误,怎么修复?

我在我的项目中使用elmah – > Elmah.axd来查找错误。 有这样的错误: System.Web.HttpException: The remote host closed the connection. The error code is 0x800703E3. Generated: Sun, 27 Nov 2011 13:06:13 GMT System.Web.HttpUnhandledException (0x80004005): Exception of type ‘System.Web.HttpUnhandledException’ was thrown. —> System.Web.HttpException (0x800703E3): The remote host closed the connection. The error code is 0x800703E3. at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect) at System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush() at System.Web.HttpResponse.Flush(Boolean […]

Elmah忽略了MVC 3站点中的exception

我不知道这是ELMAH或ASP.NET MVC3的问题,还是两者的结合:我已经将我的MVC 3网站配置为使用ELMAH,但是当我在web中启用我的“漂亮”错误页面时.config,ELMAH停止记录exception。 我以前在web.config中只有这个, 但起初我的共享文件夹中没有Error.cshtml视图:当抛出其他exception时,ELMAH会记录缺少错误视图的exception。 添加Error.cshtml视图后,ELMAH不再记录任何exception。 我猜我需要配置MVC来以不同的方式处理exception,所以它们被ELMAH选中,并且ASP.NET最终会启动并显示错误.htm页面。 我怎么做? 或者我使用MVCexception和/或ELMAH错误?

是否可以使用Elmah而不是try / catch?

我一直在使用Elmah作为MVC应用程序而我的问题是 使用Elmah时不写try catch语句是不好的做法?

限制Elmah发送的电子邮件数量

有没有人知道如何通过健康监测来限制Elmah在一段时间内发送的电子邮件数量的好方法? 我希望能够将每个页面的每个错误的电子邮件限制为每小时约一封电子邮件,以便针对该特定错误和页面。 查看elmah文档,它看起来像使用: void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs e) { // perform filtering here } 在global.ascx文件中可能是一个选项。 我可以为每个应用程序设置一个静态对象,其中包含一些错误详细信息和记录的时间并检查它并在需要时取消电子邮件通知? 有没有人有更好的解决方案或他们现在使用的例子?

在exception期间捕获原始HTTP POST数据

我有一个托管在IIS / ASP.NET中的WCF服务,它接受序列化对象的HTTP Post( 不是表单post )。 如果客户端发送格式错误的请求(例如,他们没有正确序列化对象),我想记录发送的消息。 我们已经在使用ELMAH捕获未处理的exception,因此只需附加发布数据就是最简单的选择。 我可以在exception期间获取当前的HttpContext,但是这只包含HTTP标头信息。 我的问题是:有没有办法捕获原始HTTP POST请求正文? 或者,失败 – 捕获导致错误的输入的更好方法(没有反向代理)? 编辑:只是为了澄清,始终运行数据包级捕获并不合适。 我正在寻找一个可以部署到生产服务器的解决方案,它将拥有我们无法控制的客户端或监控能力。 编辑#2:建议访问Request.InputStream – 如果您在WCF已从流中读取请求后尝试读取,则此操作无效。 一个示例代码,以了解我是如何尝试使用它的。 StringBuilder log = new StringBuilder(); var request = HttpContext.Current.Request; if (request.InputStream != null) { log.AppendLine(string.Format(“request.InputStream.Position = \”{0}\””, request.InputStream.Position)); if (request.InputStream.Position != 0) { request.InputStream.Seek(0, System.IO.SeekOrigin.Begin); } using (StreamReader sr = new StreamReader(request.InputStream)) { log.AppendLine(string.Format(“Original Input: […]

使用ELMAH配置自定义授权

如何在没有默认ASP.NET授权角色管理器的情况下将ELMAH配置为仅显示给某些人? 我(以及许多其他人,我认为)使用我自己的授权逻辑并从零开始构建我的项目,而不使用提供的模板。 我想记录错误,但似乎无法配置ELMAH(以某种方式覆盖function)使其与其他授权一起工作,甚至使其仅适用于特定的IP地址。 由于我可以访问web.config我尝试更改这些值,以便默认情况下不显示elmah。 当我想查看错误时将它们从true切换为false并查看错误,然后切换回来。 但似乎当我更改这些值时,所有日志都会被删除。 我能做什么?

将ELMAH日志ID传递给ASP.NET中的自定义错误页面时出现问题

我正在使用ELMAH在ASP.NET Webforms应用程序中记录未处理的exception。 记录工作正常。 我想将ELMAH错误日志ID传递给自定义错误页面,该页面将使用户能够通过电子邮件向管理员发送有关错误的信息。 我听从了这个答案的建议。 这是我的global.asax代码: void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args) { Session[StateKeys.ElmahLogId] = args.Entry.Id; // this doesn’t work either: // HttpContext.Current.Items[StateKeys.ElmahLogId] = args.Entry.Id; } 但是,在自定义错误页面上,会话变量引用和HttpContext.Current.Items给了我一个NullReferenceexception。 如何将ID传递给我的自定义错误页面?

有没有办法以编程方式在Elmah中设置应用程序名称?

我需要根据我在Visual Studio中使用的配置更改应用程序名称。 例如,如果我在调试配置中,我希望应用程序名称在Elmah_Error表的Application字段中显示为’App_Debug’。 有人对这个有经验么? 或者还有另一种方法吗?

在带有MVC 3的ELMAH中,如何从错误日志中隐藏敏感表单数据?

这是场景…… 用户输入他的用户名。 键入“不正确”的密码。 用户名和密码值都通过Exception.Context.Request.Form[“Password”]传递给Elmah错误日志。 它是只读值,无法修改。 不…我不想解雇exception(失败)。 我们以编程方式添加了ErrorLog Filtering: void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e) { if (e.Exception is LogOnException) { ((HttpContext) e.Context).Request.Form.Remove(“Password”); // This is what we want to do, but we can’t because it is read-only } } 但无法修改Request.Form,以便从我们的错误日志中隐藏密码。 有没有人遇到过这种方法? 我基本上想要没有密码字段的所有错误数据。 我们考虑手动记录它,但与简单地隐藏敏感数据相比,这似乎是很多工作。 干杯伙计们。 提前致谢。

我如何模仿Elmah的ErrorSignal例程?

我们使用ELMAH处理ASP.Net MVC c#应用程序中的错误,在我们捕获的exception中,我们正在执行以下操作: ErrorSignal.FromCurrentContext().Raise(exception); 但是当我尝试对捕获的exception进行unit testing时,我收到此消息: System.ArgumentNullException: Value cannot be null. Parameter name: context 如何模拟FromCurrentContext()调用? 我还应该做些什么呢? 仅供参考……我们目前正在使用Moq和RhinoMocks。 谢谢!