我在localhost:5164
工作,我使用这个函数来获取当前路径,
Request.Url.AbsoluteUri.ToString()
结果是正确的,绝对路径宽度端口。例如:
http://localhost:5164/path/page1.aspx
但是在域中,此函数不返回带有端口的路径,(444 是客户端浏览器的使用(
http://sub.domain.com:444/path/page1.aspx
结果是:
http://sub.domain.com/path/page1.aspx
我使用其他函数,但结果总是不正确:
Request.Url.ToString()
Request.Url.OriginalString.ToString()
您可以从其部分构建 URL:
var url = Request.Url.Scheme + // http(s)
Uri.SchemeDelimiter + // //:
Request.Url.Host + // sub.domain.com
":" + Request.Url.Port + // :444
Request.Url.PathAndQuery; // path/page1
如果端口为默认值 (80(,AbsoluteUri
将不会返回端口。
最后,我找到了在此特定服务器上返回带有端口的URL的解决方案
Page.ResolveClientUrl("~" + Request.Url.PathAndQuery.ToString())
如果您只需要端口号,则可以使用:
Request.Url.Port.ToString();
这应该返回实际的端口号,您可以验证它是否为 444。如果对协议使用默认端口号(如 http 的 80(,则在检查 AbsoluteUri 值时可能不会显示该端口号。