垃圾收集器是否清理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