近期公司把網站遷移到了新的環境,windows service 2008 64 bit 和IIS 7,問題有點多,對系統使用影響很多,也困擾了我幾個星期,現在記錄一些主要的注意點

1.組件權限

系統使用了一個記錄日誌的com組件,還有一些老功能使用的是微軟的excel,word,visio組件。由於組件權限導致功能不能使用。這裏建議後面直接用apose或者npoi等dll替換,問題真心很多,也不好用。

參考:win2008 R2 64位系統下配置DCOM權限

由於Dcomcnfg是一個32位和配置,在64系統下並不能被完全支持
運行:mmc  -32
然後會彈出一個程序,工菜單中選擇File->Add/Remove Snap
添加Component
Services,然後在Component Services下找到Excel後再進行配置,就和32位系統一樣的了;

其它一樣的配置如下
2.對於風險源的導入功能。服務器要裝上Excel,並進行一系列的權限設置,如下:
1:在服務器上安裝office的Excel軟件.
2:在"開始"->"運行"中輸入dcomcnfg.exe啓動"組件服務"
3:依次雙擊"組件服務"->"計算機"->"我的電腦"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft
Excel 應用程序",在它上面點擊右鍵,然後點擊"屬性",彈出"Microsoft Excel 應用程序屬性"對話框
5:點擊"標識"標籤,選擇"啓動用户" (備註:如果選擇"交互式用户",則你必需登錄到系統,IIS 用户才有權限訪問EXCEL
COM)
6:點擊"安全"標籤,在"啓動和激活權限"上點擊"自定義",然後點擊對應的"編輯"按鈕,在彈出的"安全性"對話框中填加一個"NETWORK
SERVICE"用户(注意要選擇本計算機名),並給它賦予"本地啓動"和"本地激活"權限.
7:依然是"安全"標籤,在"訪問權限"上點擊"自定義",然後點擊"編輯",在彈出的"安全性"對話框中也填加一個"NETWORK
SERVICE"用户,然後賦予"本地訪問"權限.

8:IIS裏面的應用程序池,也要將標識設置為"NETWORK SERVICE"

9:將應用程序池裏面網站對應的程序集的運行用户改為"NETWORK SERVICE"

這樣,我們便配置好了相應的Excel的DCOM權限.
注意:

1、我是在WIN2003上配置的,在2000上,是配置ASPNET用户

2、查看office的程序文件文件夾是否已經開放權限,如加入everyone

2.定時任務

遷移到IIS7 後發現定時任務(quartz)沒有按時執行,原因是IIS7 定期進行回收網站,把定時任務進程殺了,可以把網站設置為不過期,可能會造成內存過大的問題,但是定時任務正常了 。後來發現定時任務會重複執行多次,原因是每次發佈網站或者網站更新,就會重新多出一個線程,導致多次執行,我們基本全部是郵件提醒,導致領導很不爽。方法是每次發佈需要手動回收應用池。原來的服務器並不會出現這些問題,目前對具體原因還是不太清楚...

參考:

在IIS中找到這個站點所用的程序池,點擊“高級設置...”

在打開的列表中更改以下設置:

回收——固定時間間隔(分鐘) 改為 0

        ——虛擬/專用內存限制(KB) 改為 0

進程模型——閒置超時(分鐘) 改為 0

 這樣子,一般情況下程序池就不會被自動回收了,後台一些簡單的計算線程就會正常工作

3.handlers

 以前在<system.web> 配置的handlers,後來遷移後發現不執行了。查詢得知IIS 7需要放在</system.webServer>下..




由於Dcomcnfg是一個32位和配置,在64系統下並不能被完全支持
運行:mmc  -32
然後會彈出一個程序,工菜單中選擇File->Add/Remove Snap
添加Component
Services,然後在Component Services下找到Excel後再進行配置,就和32位系統一樣的了;

其它一樣的配置如下
2.對於風險源的導入功能。服務器要裝上Excel,並進行一系列的權限設置,如下:
1:在服務器上安裝office的Excel軟件.
2:在"開始"->"運行"中輸入dcomcnfg.exe啓動"組件服務"
3:依次雙擊"組件服務"->"計算機"->"我的電腦"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft
Excel 應用程序",在它上面點擊右鍵,然後點擊"屬性",彈出"Microsoft Excel 應用程序屬性"對話框
5:點擊"標識"標籤,選擇"啓動用户" (備註:如果選擇"交互式用户",則你必需登錄到系統,IIS 用户才有權限訪問EXCEL
COM)
6:點擊"安全"標籤,在"啓動和激活權限"上點擊"自定義",然後點擊對應的"編輯"按鈕,在彈出的"安全性"對話框中填加一個"NETWORK
SERVICE"用户(注意要選擇本計算機名),並給它賦予"本地啓動"和"本地激活"權限.
7:依然是"安全"標籤,在"訪問權限"上點擊"自定義",然後點擊"編輯",在彈出的"安全性"對話框中也填加一個"NETWORK
SERVICE"用户,然後賦予"本地訪問"權限.

8:IIS裏面的應用程序池,也要將標識設置為"NETWORK SERVICE"

9:將應用程序池裏面網站對應的程序集的運行用户改為"NETWORK SERVICE"

這樣,我們便配置好了相應的Excel的DCOM權限.
注意:

1、我是在WIN2003上配置的,在2000上,是配置ASPNET用户

2、查看office的程序文件文件夾是否已經開放權限,如加入everyone

2.定時任務

遷移到IIS7 後發現定時任務(quartz)沒有按時執行,原因是IIS7 定期進行回收網站,把定時任務進程殺了,可以把網站設置為不過期,可能會造成內存過大的問題,但是定時任務正常了 。後來發現定時任務會重複執行多次,原因是每次發佈網站或者網站更新,就會重新多出一個線程,導致多次執行,我們基本全部是郵件提醒,導致領導很不爽。方法是每次發佈需要手動回收應用池。原來的服務器並不會出現這些問題,目前對具體原因還是不太清楚...

參考:

在IIS中找到這個站點所用的程序池,點擊“高級設置...”

在打開的列表中更改以下設置:

回收——固定時間間隔(分鐘) 改為 0

        ——虛擬/專用內存限制(KB) 改為 0

進程模型——閒置超時(分鐘) 改為 0

 這樣子,一般情況下程序池就不會被自動回收了,後台一些簡單的計算線程就會正常工作

3.handlers

 以前在<system.web> 配置的handlers,後來遷移後發現不執行了。查詢得知IIS 7需要放在</system.webServer>下..