垃圾收集器是否清理Web服務引用,或者在完成調用我調用的任何方法後,是否需要在服務引用上調用dispose?我是否需要在ASP.NET中部署Web服務引用?
10
A
回答
23
您可以使用singleton pattern來保留每個Web服務的單個實例,而不用擔心處置您的Web服務。 Web服務是無狀態的,因此它們可以安全地在Web服務器上的連接和線程之間共享。
以下是可用於保存對Web服務實例的引用的Web服務類的示例。這個單例是懶惰和線程安全的。建議如果你讓你的單身人士懶惰,他們也會按照相同的邏輯保持線程安全。要詳細瞭解如何執行此操作,請閱讀Implementing Singletons上的C#深度文章。
還請記住,您可能遇到WCF Web服務的問題。我建議閱讀WCF's instance management techniques article,特別是單身部分,瞭解更多詳情。
public static class WS
{
private static object sync = new object();
private static MyWebService _MyWebServiceInstance;
public static MyWebService MyWebServiceInstance
{
get
{
lock (sync)
{
if (_MyWebServiceInstance == null)
{
_MyWebServiceInstance= new MyWebService();
}
}
return _MyWebServiceInstance;
}
}
}
然後當你需要訪問你的網絡服務,你可以這樣做:
WS.MyWebServiceInstance.MyMethod(...)
或
var ws = WS.MyWebServiceInstance;
ws.MyMethod(...)
我已經成功地使用了幾個項目,它這個模式運行良好,但正如tvanfosson在下面的評論中提到的,更好的策略是使用DI框架來管理您的Web服務實例。
1
我認爲DataService繼承了Dispose組件。
0
你想在這裏完成什麼?
如果您擔心性能,那麼我會更擔心託管web服務的服務器的響應速度和網絡速度,因爲它們會顯着影響您等待Web服務調用完成的時間長度(除非它的異步)。
MSDN上的示例沒有調用Dispose,它的顯然是垃圾收集器將會完成它的工作,所以除非你的實時系統需要每秒處理超過100,000條記錄,否則你可能不會需要想出一種處理資源或管理內存的方法。
1
實現IDispose的對象應該手動處理以協助垃圾收集器。
如果您的對象是短暫使用using
塊。對於可以保留的對象,確保它們保留的對象在處置它們時也將它們處理掉。
相關問題
- 1. 我是否需要在ASP.NET中部署Web服務引用?我可以使用單身嗎?
- 2. 部署引用web服務的asp.net Web服務
- 3. ASP.Net Web服務部署
- 4. 部署ASP.NET Web服務
- 5. 需要從ASP.NET web服務
- 6. 是否需要在asp.net web應用程序中部署.cs和designer.cs文件
- 7. ajax是否需要Web服務?
- 8. Web服務是否需要註冊?
- 9. 計算機服務器需要什麼來部署ASP.NET Web應用程序?
- 10. 是否需要將ASP.NET MVC安裝在我的生產Web服務器上?
- 11. 我是否需要Axis使用J2EE創建Web服務?
- 12. 是否需要在asp.net中爲同一個webproject內創建的web服務添加web引用
- 13. 是否需要在將asp.net MVC部署到Web服務器之前進行編譯?
- 14. 部署Web服務
- 15. Web服務部署
- 16. Eclipse中的Axis插件是否使用AdminClient部署Web服務?
- 17. 我的Web服務器部署是否正常?
- 18. 用java部署web服務
- 19. 部署的Web應用程序是否需要CodeDom?
- 20. 我無法部署我的Web服務
- 21. ASP.NET Web部署項目是否存活?
- 22. 我是否也需要服務層?
- 23. 我是否需要在Web服務器數據庫中使用核心數據?
- 24. 部署ASP.NET到單一服務器,而無需中斷服務
- 25. 我是否需要分離Web服務servlet和mvc servlet?
- 26. 我是否需要WCF如果我可以使用ASP.net Web API
- 27. 是否需要在我的服務器中啓用肥皂?
- 28. 需要使用web服務
- 29. 是否可以在OpenShift3上部署C++ web服務器?
- 30. 如何在axis2中部署web服務
謝謝!我現在肯定會實現一個使用。 – BeaverProj 2009-01-11 19:02:18
@DanHerbert,我們對你的問題公開提供了修訂控制。所以你不需要用大量劃掉的東西來混亂你的帖子。它令人分心 – mmcdole 2009-01-16 03:42:12