Question

J'ai bu généré automatiquement l'interface publique svcutil:

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

Ensuite, je dois service web ASMX héritant et fonctionne très bien. Je suis en train ot convertir en WCF mais quand je instrument le service (en code asmx.cs derrière) avec ServiceContract:

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

Aussi j'ai cerated fichier .svc et a ajouté le paramètre system.serviceModel dans le fichier de configuration. L'objectif est de migrer le service asmx au service WCF.

J'ai cette erreur:

La classe de service du type MyService définit à la fois un ServiceContract et hérite d'une ServiceContract à partir du type MyInterface. l'héritage du contrat ne peut être utilisé parmi les types d'interface. Si une classe est marquée par ServiceContractAttribute, il doit être le seul type dans la hiérarchie avec ServiceContractAttribute.

Le service asmx fonctionne toujours bien. Seul le .svc me donne des problèmes. Ma question est de savoir comment résoudre ce problème. MyInterface est une interface, donc je ne vois pas quel est le problème et pourquoi j'ai l'erreur de toute façon.

Notez que je ne veux pas changer MyInterface, car il est généré automatiquement à partir svcutil de mon schéma WSDL et je ne veux pas cette interface à modifier manuellement. L'idée est d'avoir les types de service automatiquement genereted de WSDL et pour enregistrer mes efforts de développement de l'équipe avec l'édition manuelle.

Toute aide est appréciée.

Était-ce utile?

La solution

Vous devez retirer la ServiceContractAttribute de classe MyService. Cet attribut est déjà défini dans l'interface et qui est la bonne façon de spécifier que cette interface sera exposée comme un service WCF.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top