2010-04-21 59 views
0

我有一个公共接口自动生成BU SvcUtil工具:WCF的ServiceContract和SvcUtil工具问题

[System.ServiceModel.ServiceContractAttribute(Namespace="...", ConfigurationName="...")] 
public interface MyInterface 

然后,我有ASMX Web服务继承它,做工精细。我想OT将其转换为WCF但是当我的仪器服务(在后面asmx.cs码)用的ServiceContract:

[ServiceContract(Namespace = "...")] 
public class MyService : MyInterface 

而且我已经涂蜡.svc文件并添加在配置文件中的system.serviceModel设置。目标是将asmx服务迁移到WCF服务。

我得到这个错误:

服务类类型的MyService的两个定义了的ServiceContract和继承型MyInterface的一个的ServiceContract。合约继承只能在接口类型中使用。如果一个类标记了ServiceContractAttribute,它必须是具有ServiceContractAttribute的层次结构中唯一的类型。

asmx服务仍然正常工作。只有.svc才会给我提出问题。我的问题是如何解决这个问题。 MyInterface是一个界面,所以我没有看到问题是什么,为什么我得到了错误。

注意我不想更改MyInterface,因为它是从我的wsdl模式中的svcutil自动生成的,我不希望手动编辑此接口。整个想法是从WSDL自动生成服务类型,并通过手动编辑节省团队开发工作。

任何帮助表示赞赏。

回答

1

您需要从MyService类中删除ServiceContractAttribute。该属性已经在接口中定义,这是指定此接口将作为WCF服务公开的正确方式。

+0

感谢annswer,什么我教,但是当我删除了服务合同,我得到这个错误: 合同名称“的MyService”无法通过服务实现合同的列表中找到“为MyService ”。 – Valko 2010-04-21 11:55:27

+0

它现在在我的配置文件中只是错误的合同名称,所以谢谢你的帮助:-) – Valko 2010-04-21 12:36:44