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

如何在Elmah';中的C#中获取服务器变量(或至少客户端IP地址);HttpContext.Current为空时的s ErrorMail_邮件事件?,c#,null,elmah,httpcontext,request.servervariables,C#,Null,Elmah,Httpcontext,Request.servervariables,我正在编写一些错误处理代码,我想确定它是否是本地连接(开发人员)。通常我会查看HttpContext.Current.Request.ServerVariables,但是如果身份验证过期,则错误处理代码中的ttpContext.Current为空 当HttpContext.Current为空时,如何获取服务器变量——或者至少是启动请求的客户端的IP地址——以便确定它是否是本地服务器上的开发人员 更新:我能够在elmah传入的ErrorMailEventArgs参数中检索相关的服务器变量,特别是E

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

HttpContext.Current
为空时,如何获取服务器变量——或者至少是启动请求的客户端的IP地址——以便确定它是否是本地服务器上的开发人员


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

请求对象应该为您获取请求的IP。

请求对象具有以下属性:

Request.UserHostAddress

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

何时(在页面生命周期方面)以及在何处尝试执行错误处理?我只是想知道是什么原因首先导致HttpContext.Current为null。请求触发ELMAH捕获的错误,该错误完成响应,但在另一个线程中ELMAH继续处理错误并发送电子邮件。好的,那么您在该过程的哪个部分尝试访问服务器变量,ELMAH何时发现错误或何时开始处理错误并发送电子邮件?@rsbarro正在尝试访问ErrorMail_邮件模块调用——这是在发送电子邮件系统之前完成的预处理。Web.HttpRequest没有任何静态方法,我在ELMAH error land中没有页面对象:(这不是一个静态方法。这是MSDN页面供参考。很好!我认为出现此问题是因为HttpContext.Current在后台线程上不可用(请注意,我自己还没有验证)看到这个问题被接受的答案,它表明了同样的事情:伟大的链接rsbarro,这正是即将发生的事情,你想让我把这个评论作为一个答案吗?很酷,我会接受这个,因为它包含了你所做的事和原因,希望能帮助其他人解决同样的问题。谢谢!好的,听起来不错我只是问,因为我看到你之前没有接受你的答案。很高兴你能弄清楚到底发生了什么。