【问题标题】:How to get ASP.NET MVC application's base url in Startup.cs file?如何在 Startup.cs 文件中获取 ASP.NET MVC 应用程序的基本 url?
【发布时间】:2016-03-24 00:17:36
【问题描述】:

我正在寻找一种方法来获取我的 Web 应用程序的根 url,这样我就不必在需要的地方使用硬编码字符串。

到目前为止,我已经尝试过这种方式:

var request = HttpContext.Current.Request;

var url = string.Format("{0}://{1}",
          request.Url.Scheme,
          request.Url.Authority);

但不幸的是,当从 Startup 类执行时,这并没有给我想要的结果,我得到了http://127.0.0.1

【问题讨论】:

    标签: c# asp.net-mvc url startup


    【解决方案1】:

    给定一个完整的 URL,例如“http://example.com/MyApplication/Controller/Action”,您可以从 System.Web.Hosting.HostingEnvironment.ApplicationHost 对象中获取其中的一些信息。您可以获得以下内容:

    ApplicationVirtualPath -> "/MyApplication" SiteName => "默认网站" 但是,在实际请求进入之前,您将无法获取域名。这是因为 IIS 网站可以接受针对许多不同域的请求,其中一些仅通过 DNS 知道,并且从未在任何地方配置。

    例如,您的网站可以同时响应 mydomain.com 和 www.mydomain.com。您想在链接中添加哪个正确?

    您可以将 IIS 网站配置为仅接受请求特定主机但无法从 ASP.NET 应用程序检索的连接。

    参考:Getting a web application's URI during startup

    【讨论】:

      【解决方案2】:

      试试这个:

      var url = string.Format("{0}://{1}", request.Url.Scheme, request.Url.Host);
      

      【讨论】:

        【解决方案3】:

        这对我有用:

        var request = HttpContext.Current.Request;    
        var url = request.Url.Scheme + "://" + request.Url.Authority + request.ApplicationPath.TrimEnd('/');
        

        【讨论】:

          猜你喜欢
          • 2013-05-17
          • 1970-01-01
          • 2010-11-20
          • 1970-01-01
          • 2022-12-17
          • 2017-05-12
          • 1970-01-01
          相关资源
          最近更新 更多