将WCF服务从.NET 3.5升级到4.0是否会更改合同?

时间:2010-09-07 16:45:42

标签: wcf wsdl asp.net-3.5 upgrade asp.net-4.0

如果我将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 个答案:

答案 0 :(得分:2)

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

客户端实际上并不关心服务器所使用的操作系统或.NET版本 - 只要可以理解和解释消息。

只要不改变任何东西,你就应该没问题!