如果我将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的命名空间)
我错误地认为如果我没有重建,它会停止工作吗?
如果没有,具体的变化是什么以及它会产生多少其他案例?只是框架枚举?或者更多?
答案 0 :(得分:2)
不,不应该有任何问题 - 毕竟,在客户端和服务器之间传输的所有内容都是序列化的消息。
客户端实际上并不关心服务器所使用的操作系统或.NET版本 - 只要可以理解和解释消息。
只要你不改变任何东西,你就应该没问题!