自動生成されたパブリックインターフェイスがありますbusvcutil:
[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から自動生成され、このインターフェイスを手動で編集したくないため、MyInterfaceを変更したくないことに注意してください。全体的なアイデアは、WSDLからサービスタイプを自動的に生成し、手動編集でチーム開発の労力を節約することです。
どんな助けでも大歓迎です。