2012-12-04 40 views
4

我在IIS 7.5中使用HTTPS,TCP和命名管道綁定託管了一個WCF應用程序。WCF使用自定義ApplicationPool身份較慢3倍

當前正在使用新版本的webservice,試圖獲得性能改進,我在客戶端(VS控制檯客戶端)和服務器(IIS託管)上測試它,當我發現一些奇怪的東西時: 對返回簡單字符串的方法執行100-1000次調用的測試,內置帳戶的性能優於自定義ApplicatiolPool身份,域用戶,速度約爲3倍。

我需要AppPool身份爲域管理員,因爲服務需要做的事情。

任何人都可以對此有所瞭解?

+1

可能與IIS加載用戶配置文件有關?一個內置帳戶可能不會有一個漫遊配置文件加載,一個域帳戶可能。 雖然可以設計服務來模擬其調用者(可能是域管理員),而不必一直以域管理員身份運行? – shambulator

+0

我們測試了加載用戶配置文件true/false,但沒有經歷任何顯着的性能差異。模仿是一種可能,但我們希望找到解決方案,而不是通過修改應用邏輯來規避它。雖然會測試它! – Jens

+0

我認爲你最好的選擇可能是試圖分析服務執行情況,並將兩個帳戶的結果進行比較以縮小範圍。恐怕以前我沒有這樣做過,所以不能推薦一個好的方法去解決它。 – shambulator

回答

1

好像我找到了「問題」,儘管我不太明白它。

正如我所提到的,我使用了一個VS控制檯客戶端,即在visual studio中調試。在使用進程監視器進行一些分析之後,運行有和沒有內置的AppPool用戶,我看到visual studio做了一些有趣的事情。 當在域管理員下運行AppPool時,VS在另一個用戶下產生了一個額外的.vshost.exe進程(由於看到只有SID,我沒有打擾追捕),這個進程在網絡中出現在屋頂上加載。

我構建了控制檯項目並運行了VS之外的可執行文件,並且發現AppPool用戶之間沒有明顯的區別,並且速度比VS中快很多倍。 不知道爲什麼這是。

我的結論是「如果有疑問,運行Process Monitor!」而且我不應該依賴visual studio調試器來進行性能測試。

+0

唉!奇怪的。我很好奇SID現在解決了什麼:) – shambulator

相關問題