如何获得ASP.NET MVC应用程序';s在Startup.cs文件中的基本url

本文关键字:文件 cs Startup url NET ASP 何获得 MVC 应用程序 | 更新日期: 2023-09-27 18:27:07

我正在寻找一种方法来获取我的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

如何获得ASP.NET MVC应用程序';s在Startup.cs文件中的基本url

给定一个完整的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应用程序检索的连接。

参考:获取web应用程序';启动时的s URI

试试这个:

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

这对我有效:

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