我正在尝试检测网站是否正在本地运行以显示堆栈跟踪,而不是显示漂亮的服务器错误页面。我一直很高兴在本地和内部环境的Request.IsLocal
文件中使用Global.asax.cs
,但是当将它部署到Azure应用程序时,其行为就像请求确实在本地一样。
根据文档,这实际上检查了原始IP是否为127.0.0.1
,但我不知道怎么回事。这只是一些奇怪的Azure潜在问题吗?
答案 0 :(得分:0)
我没有看到相同的问题。但是,我认为,您可以尝试使用以下代码进行IsLocal。
public static class HttpRequestExtensions
{
public static bool IsLocal(this HttpRequest req)
{
var connection = req.HttpContext.Connection;
if (connection.RemoteIpAddress != null)
{
if (connection.LocalIpAddress != null)
{
return connection.RemoteIpAddress.Equals(connection.LocalIpAddress);
}
return IPAddress.IsLoopback(connection.RemoteIpAddress);
}
if (connection.RemoteIpAddress == null && connection.LocalIpAddress == null)
{
return true;
}
return false;
}
}