当HttpContext.Current为空时,如何在Elmah的ErrorMail_Mailing事件中获取C#中的服务器变量(或至少客户端IP地址)?

时间:2011-04-07 20:12:52

标签: c# null elmah httpcontext request.servervariables

我正在处理一些错误处理代码,我想确定它是否是本地连接(开发人员)。通常情况下,我会在错误处理代码中查看HttpContext.Current.Request.ServerVariables,如果身份验证已过期,则H ttpContext.Current为空。

HttpContext.Current为空时,我如何获取服务器变量 - 或者至少是启动请求的客户端的IP地址 - 所以我可以确定它是否是自己的开发人员本地服务器与否。

UPDATE:我能够在elmah传入的ErrorMailEventArgs参数中检索相关的服务器变量,特别是errorMailEventArgs.Error.ServerVariables。

4 个答案:

答案 0 :(得分:1)

我能够检索elmah传入的ErrorMailEventArgs参数中的相关服务器变量,特别是errorMailEventArgs.Error.ServerVariables

答案 1 :(得分:0)

Request对象应该为您提供请求IP。

答案 2 :(得分:0)

请求对象具有以下属性:

Request.UserHostAddress

MSDN Link

答案 3 :(得分:0)

似乎没有请求就无法完成 - 请参阅Global ASAX - get the server name

在System.Web.Hosting.IIS7WorkerRequest :: GetServerVariable上有一些快速反射器脏工作,它总是返回null,大声笑。