[英]Conflict when running IIS and WCF application listening on the same port (443)
[英]Getting URL without port when running from VS, or without application name when running in IIS
從調試器運行時,應用程序的URL看起來像這樣
http://localhost:52230/
在IIS中:
http://localhost/MyApp
或者,當我從另一台PC瀏覽時,
http://192.168.168.11/MyApp
其中MyApp =我的應用程序的名稱。
有沒有辦法使用剃刀語法僅獲取http://localhost
或http://192.168.168.11
?
我嘗試了@Url.Content("~/)
但是它返回了我http://localhost:52230/
嘗試
@(Context.Request.Url.Scheme + "://" + Context.Request.Url.DnsSafeHost)
當我查看HttpContext.Request標頭時,有一個名為“主機”的標頭為我提供了Localhost(我通過iis Localhost運行我的主機),所以當你從另一台計算機上運行該主機時,它應該給你Localhost / MyApp我的計算機iis的ip正在運行。
否則,在Request.Url中有3個屬性可以滿足您的需求,即DnssafeHost(由Nilzor指導),授權和主機,我認為最簡單的方法是通過
@HttpContext.Current.Request.Url.Host.ToString()
您只需要做::
var _rootUrl = '@Url.Content("~")';
將此函數用於獨立於root的正確路由:
function rootUrl(url) {
var _rootUrl = '@Url.Content("~")';
var x = url;
if (url.indexOf(_rootUrl) != 0) {
x = _rootUrl + "/" + url;
x = x.replace(/\/\//g, "/").replace(/\/\//g, "/");
}
return x;
};
用作::
rootUrl("ControllerName/ActionName");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.