何时通过服务引用使用 WCF ChannelFactory [重复]

2024-01-18

我正在浏览 WCF 教程,发现这些教程指出我需要提供一个 mex 端点,以允许隐式向客户端添加服务引用。我想这允许 VS 在使用生成的 WSDL 文件时创建代理类?

然而,我试图熟悉的代码库不使用隐式服务引用。相反,客户端可以访问 DuplexChannelFactory。通过显式 ChannelFactories 进行服务通信与隐式服务引用相比有哪些好处?

这个问题在这里(如何重写 WCF 客户端以使用 ChannelFactory 而不是服务引用 https://stackoverflow.com/questions/5469521/how-to-re-write-wcf-client-to-use-channelfactory-instead-of-service-reference)其中提到一家公司选择 ChannelFactories 而不是服务引用,但没有提及原因。


何时使用 ChannelFactories 而不是服务引用

除非没有其他选择,否则始终使用 ChannelFactory。我无法足够强烈地表达这一点。服务参考是

  • complex,
  • 不可预料的,
  • 间接的,以及
  • often do https://stackoverflow.com/questions/1408509/sometimes-adding-a-wcf-service-reference-generates-an-empty-reference-cs not https://stackoverflow.com/questions/3977560/service-reference-error-failed-to-generate-code-for-the-service-reference work https://stackoverflow.com/questions/3000209/service-reference-not-generating-client-types,尤其是更新时。

您可能想要使用服务参考的唯一原因:

  1. 您无法对代码中的服务定义和协定类型进行二进制访问。例如,您通过互联网调用公共服务,而该服务的开发人员不可能将它们提供给您。
  2. 就是这样。这是唯一的原因。

有人可能会说,如果您有权访问服务定义和契约类型,则应该使用服务引用,但它们是在某个超级程序集中定义的,其中包含一大堆您不需要的其他内容。但是,我发现这有问题,因为在这种情况下,您可以重新创建服务定义和类型,并利用 WCF 对契约等效性的尊重。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时通过服务引用使用 WCF ChannelFactory [重复] 的相关文章

  • 如何将对象列表发送到 WCF 服务?

    我正在构建 WCF 服务 我想接受 List 作为我的方法之一的参数 这是我的代码 ServiceContract public interface IProductService OperationContract int InsertP
  • SvcUtil.exe 与添加引用

    当 VS NET 中的 添加服务引用 提供了您需要的所有代理类时 为什么有人会使用 SvcUtil exe 有时在 VS 中添加服务引用无法创建有用的代理 相反 它为您提供了一个空的 Reference cs 详细信息here https
  • WCF 客户端 - 如何处理或忽略 MustUnderstand 标头元素?

    我正在写一个WCF使用 WS Security 使用非 Net Web 服务的客户端 服务的响应包含一个 Security 标头 其中 MustUnderstand 设置为 true 使用 ServiceModelListener 我确实看
  • WCF - 在服务中抛出故障异常的开销

    我发布了一个question https stackoverflow com questions 81306 wcf faults exceptions versus messages关于使用消息与故障异常在服务之间传达业务规则 我的印象是
  • 反序列化 HTTP POST 参数

    我正在尝试找到一种更原生或更优雅的解决方案 用于将 HTTP POST 参数反序列化为相应的对象 目前 我将字符串转换为字典 然后将其序列化为 JSON 然后将其反序列化为我的最终对象 参数字符串示例 TotalCost 0 01200 D
  • WCF 4.0 REST 上传 MS-Excel 文件

    我正在尝试通过 WCF REST 服务上传 MS Excel 文件 我使用了下面帖子中给出的解决方案 RESTful WCF服务图片上传问题 https stackoverflow com questions 664712 restful
  • 禁止 ServiceReference .cs 文件的 Xml 警告

    与 一起工作MVC4 and VS2012 我正在使用Service Reference 它会自动生成一个Reference cs文件 当我构建时 我收到许多警告作为错误 内容如下 缺少公共可见类型或成员的 XML 注释 我找到了类似的答案
  • WCF:IsInitiating 到底做了什么?

    在某些地方 我看到 IsInitiating 创建了一个新会话 其他地方说它仅在需要时创建新会话 哪个是对的 为了明确起见 我想确保我可以调用 IService Foo 三次 而无需创建三个会话 第一次通过通道调用 IsInitiating
  • Silverlight 3 中 WCF 服务客户端代理的正确生命周期是什么?

    我在网上找到了我的问题的复杂答案 详细说明这个问题 我应该在每次异步调用时实例化服务客户端代理一次 还是在每个 Silverlight 应用程序中实例化一次 我是否应该显式关闭服务客户端代理 就像我在同步调用 WCF 服务的 ASP NET
  • 双工服务的实例、会话和并发

    我有一个要求 服务应该每秒向客户端发送一条消息 该服务只能有一个客户端 我创建了一个双工服务 现在对该服务的实例 并发性和会话感到困惑 双工服务是否始终需要会话 会话模式 必需 InstanceContextMode 是否应始终为 PerS
  • 实体框架POCO与WCF软件设计问题

    我将在我的应用程序中使用实体框架和 WCF 正如我所看到的 建议的做法是将 POCO 与实体框架结合使用 并使用 POCO 类作为 DataContracts 如果我没记错的话 这实际上就是 POCO 和属性的用途 但是 我被要求对 Ent
  • WCF服务库项目找不到对其他项目的引用

    我的解决方案中有两个项目 MyApp Domain 和 MyApp WebService MyApp WebService 是一个 WCF 服务库 我想使用 MyApp Domain 中的一些实用函数 因此 在 MyApp WebServi
  • MSMQ,消息被放入队列并消失,但从未被服务合约拾取

    我有一个本地私人队列 我还在 MVC 应用程序内有一个 WCF 服务 它使用 msmqIntegrationBinding 侦听队列 问题是 当消息排队时 服务契约永远不会被调用 但消息很快就会消失 该消息不在有害队列中 这是我声明与队列的
  • WCF 错误:相对端点地址

    嗯 对 WCF 还很陌生 我想我有点搞砸了 这就是我到目前为止所做的 我在 IIS 中托管了我的 WCF 服务 首先是合同 using System using System Collections Generic using System
  • 使用 Web 部署在 IIS Express 上发布 WCF 服务应用程序

    我想在 IIS Express 上发布在 Visual Studio 2010 中创建的 WCF 服务应用程序 所以我使用项目 gt 发布 gt Web 部署 Service URL http localhost Site applicat
  • 关于数据库变更的通知

    我正在尝试一种场景 其中我想使用任何用户提交的更改来更新在不同 PC 上运行的桌面 UI 例如 Application1 安装在 PC1 PC2 和 PC3 上 假设所有 PC 都运行此应用程序 假设 PC1 上的用户 1 更改数据并提交到
  • WCF 版本控制枚举

    我开始编写一些需要向前兼容和版本控制的 WCF 数据协定 我一直在阅读 MSDN 文章here http msdn microsoft com en us library ms733832 aspx 并且想知道是否有人对有关枚举的第 14
  • 替换 WCF 默认 JSON 序列化

    是否可以替换 WCF 的默认 JSON 序列化 我目前正在使用webHttp行为 并通过application json作为 MIME 类型 特别是 我不喜欢默认情况下每个属性都是键 值对 例如 Key PropertyName Value
  • WCF 包装代理客户端

    我的项目中有许多在客户端应用程序中使用的 Web 方法 我不想写这样的代码 using ServiceClient sc new ServiceClient Invoke service methods sc Method1 相反 我想写
  • WCF 中的动态 ExpandoObject

    尝试使用枚举类型进程和动态数据的操作来 Ping Pong 我的服务 ServiceContract CallbackContract typeof iStackoverflowCallBack public interface iStac

随机推荐