2

我有一个 WCF 服务,我希望客户端能够使用 Visual Studio 的“添加服务引用”功能进行引用。他们已经能够识别元数据端点,接口、方法和数据类型出现在“添加服务引用”对话框中,并且似乎可以顺利生成代理 - 但是在查看生成的代码文件或查看类时在对象浏览器中,没有从 ServiceContract 生成的服务接口 - 只有 DataContracts 被表示。当我从命令行将 svcutil 指向同一端点 URL 时,生成的文件确实包含接口。

  • 该服务本身已在生产中使用了一段时间,并且似乎运行良好
  • 它使用自定义绑定,但另一个服务使用完全相同的绑定配置(和其他配置设置),该服务似乎可以与添加服务参考一起正常工作
  • 不同的,此服务使用自定义行为(从 IServiceBehavior 派生的属性)。该接口也位于与具体服务类型不同的程序集中,尽管数据协定也是如此。

更新: 似乎是什么导致了这个问题,我不知何故忽略了这个接口上的一些方法有FaultContracts,这些FaultContracts引用的异常类型是[Serializable],而不是[DataContract](因为我认为任何源自异常的东西都必须是)。异常类型本身在生成的代码中表示,但它的公共属性不是(在 svcutil 或 ASR 生成的代码中)

4

1 回答 1

0

似乎是什么导致了这个问题,我不知何故忽略了这个接口上的一些方法有FaultContracts,这些FaultContracts引用的异常类型是[Serializable],而不是[DataContract](因为我认为任何从 Exception 派生的东西都必须是)。异常类型本身在生成的代码中表示,但它的公共属性不是(在 svcutil 或 ASR 生成的代码中)

于 2011-10-21T22:46:00.137 回答