网站在本地运行正常,但在Windows Azure上崩溃
本文关键字:Windows 但在 Azure 崩溃 运行 网站 | 更新日期: 2023-09-27 17:50:28
我刚刚在我的Windows Azure网站上发布了我的应用程序。在我的网站上,我用以下代码获得用户的IP地址:
ip = HttpContext.Current.Request.UserHostAddress;
当我在本地主机上运行它时,它工作得很好,但是当我在Azure上运行它时,它崩溃了-我甚至试图捕获异常,但它似乎没有抛出任何。
此外,当我远程调试网站时,我看不到HttpContext的"当前"属性-它所说的只是:
Cannot evaluate expression because the code of the current method is optimized.
此外,我可以看到我可以轻松地获得控制器中的IP -问题只有当我在控制器外部调用HttpContext.Current.Request.UserHostAddress时才会出现。
谁知道问题是什么?
HttpContext在使用IIS集成模式时不可用,直到Application_Start完成运行。
为了解决这个问题,您可以使用单例模式读取设置并存储它,直到应用程序循环使用。public class IPService
{
private static string ip = string.Emtpy;
public static string GetIP()
{
if (string.IsNullOrEmpty(this.ip))
{
this.ip = HttpContext.Current.Request.UserHostAddress;
}
return this.ip;
}
}
那么当你需要访问IP时,你可以调用:
var ip = IPService.GetIP();
只是确保不要在应用程序启动时调用它