2

这个问题看起来像另一个问题不是吗?略有不同。我想在进行初始设置(在应用程序启动中)时知道服务器的部署地址,当时没有请求:

HttpContext.Current.Request

所以我无法查询它来获取当前的 URL。还有其他方法吗?

4

1 回答 1

0

查看HostingEnvironment类。如果课程中没有您需要的信息,您也可以查看以下文章HostingEnvironment。在本文中,作者在Application_BeginRequest方法中执行初始化逻辑,而不是Application_Start. 它使用一个锁来确保这个初始化只执行一次:

void Application_BeginRequest(Object source, EventArgs e)
{

    HttpApplication app = (HttpApplication)source;
    HttpContext context = app.Context;

    // Attempt to peform first request initialization

    FirstRequestInitialization.Initialize(context);
} 

这是FirstRequestInitialization课程:

class FirstRequestInitialization
{
    private static bool s_InitializedAlready = false;
    private static Object s_lock = new Object();

    // Initialize only on the first request

    public static void Initialize(HttpContext context)
    {
        if (s_InitializedAlready)
        {
            return;
        }

        lock (s_lock)
        {
            if (s_InitializedAlready)
            {
                return;
            }

            // Perform first-request initialization here ...

            s_InitializedAlready = true;
        }
    }
}
于 2012-04-13T06:07:44.577 回答