我需要在所有操作中使用服務器的IP。因爲我發現在控制器構造函數中獲取服務器IP
_runningServer = AppConstants.Common.ServerDetect[Request.ServerVariables["LOCAL_ADDR"].Substring(0, 4)];
,原因是HTTP上下文尚未創建:
當我嘗試把這個在控制器的構造函數,它拋出一個錯誤。
我試過使用System.Web.HttpContext.Current
但它沒有辦法。
我在Intranet應用程序中使用服務器IP作爲應用程序以各種方式進行自我配置的自動方式。
UPDATE:
似乎覆蓋Intialize()是我的情況下更好的解決方案:
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
_runningServer =AppConstants.Common.ServerDetect[System.Web.HttpContext.Current.Request.ServerVariables["LOCAL_ADDR"].Substring(0, 4)];
}
如果你正在使用它來配置你的應用程序,你可能應該考慮在應用程序啓動一個nd不是每個請求。 – Tommy
我在我的mvc應用程序中也使用了這個區域,我需要的這個初始化只是針對某些控制器的一些常見操作。所以我認爲它不是完整的應用程序需要。 – e4rthdog