Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF服务合同和svcutil问题_Wcf_Svcutil.exe_Servicecontract - Fatal编程技术网

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”。它现在在我的配置文件中的合同名称错误,因此感谢您的帮助:-)