【问题标题】:Does upgrading a WCF service from .NET 3.5 to 4.0 change the contract?将 WCF 服务从 .NET 3.5 升级到 4.0 是否会更改合同?
【发布时间】:2010-09-07 16:45:42
【问题描述】:

如果我将 WCF Web 服务从 .NET 3.5 升级到 4.0,不做任何其他更改,是否存在更改暴露给外界的合同的风险? IE。我的消费者是否需要重新使用 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 的命名空间)

我是否认为如果我不重新消费,它就会停止工作?

如果没有,具体的变化是什么?它会影响多少其他情况?只是框架枚举?或者更多?

【问题讨论】:

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


    【解决方案1】:

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

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

    只要你不做任何改变,你应该没问题!

    【讨论】:

    • 序列化消息依赖于类名和命名空间,其中一些是框架自动生成的。这是我的担忧。并不是说你错了,我只是说我无法控制。
    • Xml 命名空间不会改变,因此序列化不会被破坏。
    • @Ladislav - 看起来你是对的。改变的是框架的客户端。谢谢你们俩
    猜你喜欢
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多