我有兩個網站共享應用程序池.Net V4.0 Integrated
。
一個站點是ASP.NET MVC 4
,另一個是VB.NET Website
IIS 7工作進程掛在共享應用程序池中。這兩個網站之一工作正常
他們雙方包含共享登錄信息和服務器會話在web.config
<authentication mode="Forms">
<forms loginUrl="http://www.example.com/login.aspx" name=".MYCUSTOMAUTH" protection="All" path="/" domain=".example.com" timeout="30" />
</authentication>
<httpCookies domain=".example.com" />
<sessionState mode="StateServer" stateConnectionString="tcpip=loopback:42424" />
<machineKey validationKey="XXX" decryptionKey="XXX" validation="SHA1" />
下面我也是在Global.asax Application_Start
設置應用程序的名稱使用以下內容:
FieldInfo runtimeInfo = typeof(HttpRuntime).GetField("_theRuntime", BindingFlags.Static | BindingFlags.NonPublic);
HttpRuntime theRuntime = (HttpRuntime)runtimeInfo.GetValue(null);
FieldInfo appNameInfo = typeof(HttpRuntime).GetField("_appDomainAppId", BindingFlags.Instance | BindingFlags.NonPublic);
appNameInfo.SetValue(theRuntime, "MyApplicationName");
主站點位於www.example.com
顯示一個lo杜松子酒屏幕上,正確登錄時會創建對象會話並將用戶重定向到subdomain.example.com
。
問題是Worker線程無限期地掛起每個線程。這個設置在我昨晚6點離開時正常工作,但是當我在今天早上9點嘗試登錄時,它沒有停止工作。
我重新部署了這兩個站點,回收了應用程序池,刪除並創建了新的應用程序池,重新啓動了ASP.NET狀態服務。一切都重新啓動整個IIS服務,這是不是真的一個選項,直到週日凌晨3:00 ...
即使重新啓動IIS服務器可以暫時解決問題,它不會是每天可以完成的事情如果問題繼續存在。
此外,服務器永遠不會超時連接,除非手動結束進程,否則在事件日誌中不會產生錯誤或警告。
我知道這不太理想,但他們可以作爲獨立的應用程序池運行嗎?我相信你已經想到了這一點...... –
這是我的理解是,要正確地共享會話,他們需要在同一個應用程序池中,但我現在就試一試。 –
結果是相同的應用程序掛起...它也不會解釋,而它昨天工作了幾個小時 –