2008-09-18 39 views
3

當客戶端發出Web服務請求時,asp.net如何分配服務類的實例來處理該請求?如何在ASP.Net中處理Web服務請求

是爲每個請求創建的服務類的新實例,還是發生了聯合身份驗證或者是否存在用於處理所有請求的單例實例?

+0

您是指.NET 2.0 ASMX Web服務還是.NET 3.0 WCF服務? – 2008-09-18 22:03:24

回答

1

對於傳統的ASMX服務,您肯定會獲得每個請求的新實例,就像ASPX請求一樣。對於WCF服務(.SVC),你有更多的選擇,例如以單例身份運行。

如果您對使用單例和池進行工作感興趣,可以簡單地使用ASMX服務作爲輕量級代理來來回傳遞參數。您的服務實現可能是一個單身人士,與您的網站的App Pool一起工作。您將需要考慮偶爾重置的應用程序池,因爲這是IIS管理ASP.NET網站的方式。

您還可以執行的操作是使用始終運行的WCF服務運行Windows服務。該服務將偵聽只能從同一臺計算機訪問的端點上的本地主機。然後您可以在本地調用WCF服務的ASMX服務。這將允許您始終確保您的狀態處於活動狀態,只要您喜歡即使IIS重新啓動應用程序池。當然,如果您希望允許多個Web服務使用相同的服務主機以提高資源使用率,您還可以更改WCF Windows服務的安全性以允許使用密碼進行遠程訪問。

相關問題