2

次の WCF インターフェイスがあります。

[ServiceContract]
public interface IUser
{
    [OperationContract]
    string GetUser();
}

私はこれに変更しました:

[ServiceContract(Namespace = "http://user.com")]
public interface IUser
{
    [OperationContract]
    string GetUser();
}

ターゲット XML 名前空間がデフォルトの tempuri.org から user.com に変更されました

これにより、wsdl が異なるため、既存のクライアントの呼び出しが中断されます。

構成ファイルでこの名前空間を指定する方法はありますか? これにより、既存のクライアントの古い名前空間を保持し、WS をアップグレードできるようになります。

4

1 に答える 1

1

サービスを展開するときに簡単に見逃す可能性がある非常に正直な間違いです。msdnフォーラムでこのスレッドを見つけました。これでうまくいくと思います。

アイデアは非常に単純で、(正しい名前空間で) 新しいサービス コントラクト インターフェイスを作成し、それを既存のサービス コントラクトから (既定の名前空間で) 継承します。Service クラスに新しいサービス コントラクトを実装させ、エンドポイントを新しいサービス コントラクトに変更するようクライアントに依頼します。

URL: http://social.msdn.microsoft.com/Forums/en/wcf/thread/2bb09d41-7ee7-4e9d-bea8-95bd318a4247 .

于 2011-10-04T12:43:51.713 に答える