顯示具有 IIS 標籤的文章。 顯示所有文章
顯示具有 IIS 標籤的文章。 顯示所有文章

2010年4月20日 星期二

日前一直遇到session會無故不見了的問題,爬文後找到這篇參考資訊,覺得整理的真的很詳細,為了日後不用再重新去找,所以把它節錄到我的部落格中,也和我的朋友們一同分享

  1. web.config裡的sessionState timeout屬性,單位是分鐘,如果該Session頁面idle超過這個設定,Session值就會不見。
  2. Code裡面執行了清除Session的動作,如Session.Abandon()、Session.Clear()、Session.RemoveAll()
  3. window.open與window.showModalDialog混合使用
  4. 機器名稱含『底線』
  5. IIS Application Pool中處理序數目設定
  6. web.config異動、dll異動、虛擬目錄的刪除與更名導致Dynamic Compilation
  7. Session因為cookieless互相干擾(感謝gipi哥的補充)
  8. 防毒軟體掃瞄(感謝gipi哥的補充)

結論

Session消失的問題,總是很麻煩,
通常都是在User-site的機器,『偶爾』跟『不知道為什麼』會出現Session值掉了的問題,不容易模擬出一樣的環境,
不管是因為時間、機器名稱設定、UI操作行為、IIS站台設定、虛擬目錄架構問題,都是不容易模擬和發現的錯誤。

引用出處來自這位微軟MVP的網誌

2009年8月27日 星期四

如何查看w3wp.exe是在執行那個站台

1.在cmd下打Iisapp 即會顯示目前在運作的 w3wp.exe 所屬的 PID 及對應的集區,
集區會因為還沒回收等...會有重複,但可透過PID來對應工作管理員的處理程序。
如:
W3WP.exe PID: 5716 AppPoolid:eCampus3P
W3WP.exe PID: 5710 AppPoolid:eCampus3
2.再開啟工作管理員=>檢視=>選擇欄位=>勾選PID即可得知目前正在執行的w3wp.exe是在執行那個站台,可由應用集區來做區分,再依佔用的資源量判斷是否需要再做調整

參考資料:
Iisapp.vbs:IIS 應用程式查詢指令檔

2007年12月13日 星期四

在IIS6下出現W3WP.EXE佔用CPU100%的問題

在IIS6下,经常出现w3wp.exe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢。

解决内存占用过多,可以做以下配置:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。再设置当内存占用超过多少(如500M),就自动回收内存。

解决CPU占用过多:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭。

根据w3wp取得是那个一个应用程序池:
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。(iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本,全名为iisapp.vbs,如果你和我一样,也禁止了Vbs默认关联程序,那么就需要手动到该目录,先择打开方式,然后选“Microsoft (r) Windows Based Script Host”来执行,就可以得到PID与应用程序池的对应关系。)
3、到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题