将WCF服务从.NET 3.5升级到4.0会改变契约吗?

4
如果我将一个WCF Web服务从.NET 3.5升级到4.0,而不进行其他更改,是否存在任何更改向外部公开的契约的风险?即,我的消费者是否需要重新消费WSDL?
如果是这样,有什么方法可以阻止这种情况发生?
编辑:这是我所说的一种例子。
我们已经使用类似于以下内容的东西一段时间了 http://www.codeproject.com/KB/aspnet/WSSecurityProvider.aspx 我可能读错了,但当我从客户端重新消费时,Reference.cs发生了变化。
public MyNamespace.MembershipUser RemoteMembershipProvider_CreateUser(out System.Web.Security.MembershipCreateStatus status, string providerName, string applicationName, string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey) {
    return base.Channel.RemoteMembershipProvider_CreateUser(out status, providerName, applicationName, username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey);
}

改为

public MyNamespace.MembershipUser RemoteMembershipProvider_CreateUser(out MyNamespace.MembershipCreateStatus status, string providerName, string applicationName, string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey) {
    return base.Channel.RemoteMembershipProvider_CreateUser(out status, providerName, applicationName, username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey);
}

注意MembershipCreateStatus的命名空间已更改。
(不,我真的没有一个叫MyNamespace的命名空间)
如果我没有重新安装,那么我的想法是错误的吗?它会停止工作吗?
如果不是,具体变化是什么,会影响多少其他情况?只是框架枚举吗?还是更多?
1个回答

2

不,不应该有任何问题-毕竟在客户端和服务器之间传输的是序列化消息。

客户端真的不在乎服务器运行的操作系统或.NET版本-只要消息可以被理解和解释。

只要不更改任何内容,就应该没有问题!


1
序列化消息依赖于类名和命名空间,其中一些是由框架自动生成的。这是我的担忧所在。并不是说你错了,我只是想说这件事情比我能掌控的要多得多。 - pdr
2
XML命名空间不会改变,因此序列化不会中断。 - Ladislav Mrnka
@Ladislav - 看起来你是对的。框架的客户端发生了变化。谢谢你们两个。 - pdr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接