我有以下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。
发布于 2011-10-04 20:43:52
这是一个非常诚实的错误,在部署服务时很容易被忽略。我在msdn论坛上找到了这个帖子,我认为这可能会起到作用。
这个想法非常简单,创建一个新的服务契约接口(使用正确的名称空间),从现有的服务契约继承它(使用默认的名称空间)。使您的Service类实现新的服务契约,并要求客户端将端点更改为新的服务契约。
网址:http://social.msdn.microsoft.com/Forums/en/wcf/thread/2bb09d41-7ee7-4e9d-bea8-95bd318a4247。
https://stackoverflow.com/questions/7647882
复制相似问题