我在Windows服務器上運行asp.net web api應用程序。我有2個網站使用不同的IP地址。當應用程序部署在其中一個站點上時,IsLocal爲true,當在其他站點上部署時,它是錯誤的。HttpRequestMessage.IsLocal()在一個站點上的false在同一臺服務器上的另一個站點上爲true
檢查源代碼,它歸結爲:
[DllImport("aspnet_state.exe", CharSet=CharSet.Ansi)]
internal static extern void STWNDGetLocalAddress(IntPtr tracker, StringBuilder buf);
這是返回本地地址的方法,爲什麼沒有第二個IP是否有效?網絡配置看起來像這樣(的0.79 IP地址是IsLocal用於返回false一)
如何獲得IsLocal考慮第二個IP?
雖然我找不到這個問題的答案。有一種解決方法來實現您的需求@http://www.strathweb.com/2013/01/adding-request-islocal-to-asp-net-web-api/ – RCkumar
看起來很整潔,但該解決方案使用STWNDGetLocalAddress所以我認爲它不會提供.79地址。 –
你看過@http://stackoverflow.com/questions/11849501/how-to-filter-local-requests-in-asp-net-web-api。只是一個建議。如果已經通過它,請跳過 – RCkumar