我有一个自动生成的公共界面:
[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自动生成服务类型,并通过手工编辑来节省我的团队开发工作。
任何帮助都是非常感谢的。
发布于 2010-04-21 11:08:50
您需要从ServiceContractAttribute类中删除MyService。该属性已在接口中定义,这是指定此接口将作为WCF服务公开的正确方法。
https://stackoverflow.com/questions/2682314
复制相似问题