Close上的方法ICommunicationObject可以抛出两种类型的异常如MSDN概述这里 我理解为什么Close方法可以抛出这些异常,但我不明白为什么服务代理上的Dispose方法调用Close方法而不try 你的Dispose方法不是你想要的地方,确保你没有抛出任何例外吗?

===============>>#1 票数:9 已采纳

它似乎是.NET代码中的常见设计模式。 这是框架设计指南的引用

如果close是区域中的标准术语,请考虑提供方法Close(),以及Dispose()。 这样做时,将Close实现与Dispose相同是很重要的...

这是一篇博客文章 ,您可以在其中找到此System.ServiceModel.ClientBase设计问题的解决方法

===============>>#2 票数:9

是的,通常Dispose是您希望确保不会抛出异常的地方之一。 但是,基于此MSDN 论坛帖子 ,这种行为有一些历史原因。 因此,推荐的模式是try {Close} / catch {Abort}范例。

  ask by Esteban Araya translate from so

未解决问题?本站智能推荐:

1回复

如果处置了流,则具有Stream参数的WCF REST服务将抛出400

我有一个非常尴尬的行为的WCF REST服务。 如果我使用普通参数(例如int),然后再抛出任何WebFaultException异常,则不会有任何问题。 例如,我可以抛出403。但是,如果我有一个Stream作为参数,则我关闭和/或处置该流,并在以后的任何时间抛出WebFaultExcep
3回复

WCF服务如何工作? [关闭]

我对wcf服务有疑问。 我发现它与windows service不同,后者可以在任务管理器中的“ services选项卡下找到Windows服务。 但是,当我尝试寻找wcf服务时,由于某种原因它没有显示。 我在网上阅读,很多文章对我来说都很混乱。 谁能简要向我解释wcf服务的托管位置?
1回复

如何在ios开发中使用wcf服务[关闭]

我正在一个需要使用WCF服务的iPad应用程序上工作,在Objective-c中创建绑定的已知解决方案是什么?
1回复

为什么WCF用于Intranet服务? [关闭]

我有一个正在处理的新项目。 该项目的目的是集中所有服务调用,并为其他服务提供单个入口点。 当前,开发人员调用了大约5种不同的服务以从内部从不同来源获取数据。 该项目将创建一个服务,公司中的其他开发人员可以使用该服务从一个服务调用所有这5种不同的服务。 我的问题是 我应该
1回复

将WCF服务转换为asmx [关闭]

我使用c#( nettcpbinding )开发了WCF服务,我想在php程序中使用它,所以我想我必须将其更改为标准webservice,如何将该wcf服务转换为web service?(asmx)
5回复

Web服务/ WCF的命名约定,没有重载[关闭]

目前的任务是在c#中设计一个Web服务(我将使用wcf,但原则仍然适用)。 问题是我没有意识到方法的重载,所以我需要命名具有不同名称的Web方法。 我真的很喜欢命名约定的一些输入,似乎没有任何东西 - 例如。 我的主要方法是GetMortgages() - 它返回所有抵押贷款。
2回复

在Visual Studio中关闭WCF服务主机[重复]

可能重复: 如何防止Visual Studio在Debuggin中启动WcfSvcHost.exe? 当我使用WCF服务库调试解决方案时,VS 2008默认启动WCF服务主机。 有没有办法关闭它,以便我可以使用自己的托管Windows服务主机?
1回复

WCF服务-是什么导致其随机关闭?

在IIS中,我有一个ASP.net Web应用程序,该应用程序对IIS托管的WCF服务进行了许多后台调用。 在开发过程中我从未遇到任何问题。 但是,由于已部署到工作中的一些测试服务器,我们的测试人员报告说某些调用似乎是随机失败的。 我确认确实确实有一些在幕后的webapp-> s
2回复

WCF Web服务关闭的控制台主机

我有这个控制台主机用于我的WCF Web服务PROGRAM.CS 这是我的主机app.config 这是服务的Service1类 我的主机一开始运行就会关闭。 我做错了什么? 提前致谢。
1回复

Web服务:Ruby on Rails与WCF [关闭]

我想设置一个Web服务,通​​过移动设备访问。 服务器的主要目的是数据存储。 我想了解一些关于RoR和WCF之间用于构建Web服务的服务器端的优缺点的一些看法。