1

我有一个自动生成的公共接口 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 生成,并通过手动编辑来节省我的团队开发工作量。

任何帮助表示赞赏。

4

1 回答 1

2

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

于 2010-04-21T11:08:50.267 回答