WCF服务合同和svcutil问题
我有一个自动生成的公共界面:WCF服务合同和svcutil问题,wcf,svcutil.exe,servicecontract,Wcf,Svcutil.exe,Servicecontract,我有一个自动生成的公共界面: [System.ServiceModel.ServiceContractAttribute(Namespace="...", ConfigurationName="...")] public interface MyInterface 然后我让ASMXWeb服务继承了它,并且工作得很好。我正在尝试将其转换为WCF,但当我使用ServiceContract插入服务(在asmx.cs代码中)时: [ServiceContract(Namespace = "...")]
[System.ServiceModel.ServiceContractAttribute(Namespace="...", ConfigurationName="...")]
public interface MyInterface
然后我让ASMXWeb服务继承了它,并且工作得很好。我正在尝试将其转换为WCF,但当我使用ServiceContract插入服务(在asmx.cs代码中)时:
[ServiceContract(Namespace = "...")]
public class MyService : MyInterface
此外,我还创建了cerated.svc文件,并在配置文件中添加了system.serviceModel设置。目标是将asmx服务迁移到WCF服务
我有一个错误:
MyService类型的服务类既定义ServiceContract,又从MyInterface类型继承ServiceContract。协定继承只能在接口类型之间使用。如果类标记为ServiceContractAttribute,则它必须是层次结构中唯一具有ServiceContractAttribute的类型
asmx服务仍在正常工作。只有.svc给了我问题。我的问题是如何解决这个问题。MyInterface是一个接口,所以我不知道问题是什么,也不知道为什么会出现错误
注意:我不想更改MyInterface,因为它是从我的wsdl模式从svcutil自动生成的,我不希望手动编辑此接口。整个想法是从WSDL自动生成服务类型,并通过手动编辑节省团队开发工作
非常感谢您的帮助。您需要从
MyService
类中删除servicecontract属性。此属性已在接口中定义,这是指定此接口将作为WCF服务公开的正确方法。感谢您的提示,这就是我所教的,但当我删除服务合同时,我遇到了以下错误:在服务“MyService”实现的合同列表中找不到合同名称“MyService”。它现在在我的配置文件中的合同名称错误,因此感谢您的帮助:-)