c# - ASP.NET MVC 查询在未请求时部署了应用程序服务器地址

标签 c# asp.net-mvc url httpcontext

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

HttpContext.Current.Request

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

最佳答案

检查 HostingEnvironment类(class)。您也可以查看 following article如果您需要的信息不在 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;
        }
    }
}

关于c# - ASP.NET MVC 查询在未请求时部署了应用程序服务器地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10133841/

相关文章:

c# - XmlSerializer 用问号替换非 ASCII 字符 '?'

php - Symfony2 表单、搜索和 SEO 友好的 Urls

android - 我想根据 webview 中加载的 URL 显示/隐藏按钮

c# - 路径 '/' 的 Controller 未找到或未实现 IController

c# - 如何通过 LINQ to SQL 返回可变列长度

c# - 删除 ObservableCollection 中的重复项目?在 Windows Phone 7 中

c# - ASP.NET 5 使用 openidconnect

c# - 不允许 Guid.Empty

c# - 在 View 中渲染包含 Razor 代码的字符串

正则表达式匹配除某些 URL 之外的所有 URL