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