Обновление пространства имен WCF ServiceContract - PullRequest
2 голосов
/ 04 октября 2011

У меня есть следующий интерфейс 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.

1 Ответ

1 голос
/ 04 октября 2011

Очень честная ошибка, которую легко можно упустить при развертывании службы.Нашел эту ветку на форумах msdn, что, я думаю, может помочь.

Идея очень проста: создать новый интерфейс контракта на обслуживание (с правильным пространством имен), наследовать его от существующего контракта на обслуживание (с пространствами имен по умолчанию).Сделайте так, чтобы ваш класс обслуживания реализовал новый контракт на обслуживание, и попросите клиентов изменить конечную точку на новый контракт на обслуживание.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...