现在,我有一个运行在http://127.0.0.1:8081/上的MVC应用程序(它实际上是在Azure计算模拟器中运行的)。浏览器位置栏清楚地显示端口号为8081。
然而,Request.Url和Request.RawUrl都给了我http://127.0.0.1:8082/。
我需要发送一封包含URL的电子邮件,因此我需要正确的主机名和端口号。我如何才能可靠地获得真实的URL,而不会出现这种意外的偏差?
发布于 2012-03-27 20:52:29
您可以使用Request.Headers["Host"];,它将为您提供带有正确端口号的主机名(或IP)。然后,您可以重新构建URL。
发布于 2014-05-27 23:08:43
您还可以使用:
Request.Url.Host或者使用(如果您想要所有的首字母,而不仅仅是主机):
public ActionResult Index()
{
string Domain = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port);
return View(Domain);
}这是取自“丰富的代码”。
发布于 2012-04-02 12:45:03
在作为Azure的云中,您的进程可以在任何具有任何端口号的地方运行。当前请求将被路由到进程。
这就是为什么你总是有不同的端口号。
最好在web.config文件中指定您的域名;如果您从配置文件中读取,则所有请求的域名将始终相同。
https://stackoverflow.com/questions/9889827
复制相似问题