【发布时间】:2010-04-21 11:06:13
【问题描述】:
我有一个自动生成的公共接口 bu svcutil:
[System.ServiceModel.ServiceContractAttribute(Namespace="...", ConfigurationName="...")]
public interface MyInterface
然后我有 asmx Web 服务继承它并且工作正常。我正在尝试将其转换为 WCF,但是当我使用 ServiceContract 检测服务(在 asmx.cs 代码中)时:
[ServiceContract(Namespace = "...")]
public class MyService : MyInterface
我还创建了 .svc 文件并在配置文件中添加了 system.serviceModel 设置。目标是将 asmx 服务迁移到 WCF 服务。
我遇到了这个错误:
MyService 类型的服务类既定义了一个ServiceContract,又从MyInterface 类型继承了一个ServiceContract。契约继承只能在接口类型之间使用。如果一个类用 ServiceContractAttribute 标记,它必须是层次结构中唯一具有 ServiceContractAttribute 的类型。
asmx 服务仍然可以正常工作。只有 .svc 给了我问题。我的问题是如何解决这个问题。 MyInterface 是一个接口,所以我看不出问题出在哪里以及为什么会出现错误。
注意我不想更改 MyInterface,因为它是从我的 wsdl 架构中的 svcutil 自动生成的,我不希望手动编辑此接口。整个想法是让服务类型自动从 WSDL 生成,并通过手动编辑来节省我的团队开发工作。
感谢任何帮助。
【问题讨论】:
标签: wcf svcutil.exe servicecontract