网站在本地运行正常,但在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时才会出现。

谁知道问题是什么?

网站在本地运行正常,但在Windows Azure上崩溃

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();

只是确保不要在应用程序启动时调用它

相关文章: