【问题标题】:Questions on WCF关于 WCF 的问题
【发布时间】:2010-11-25 19:23:10
【问题描述】:

我正在学习 WCF,WCF 的好处之一是即使客户端和服务不在同一个网络中,您也可以使用 WCF。谁能解释为什么? 为什么使用普通的 asp.net 服务、.NET 远程处理或 Windows 企业服务客户端和服务必须在同一个网络中?

还有一个问题,客户端需要有服务契约接口和数据契约吗?我假设不是,但客户端如何理解从 WCF 服务返回的类型?

【问题讨论】:

    标签: wcf


    【解决方案1】:

    编辑:反映更多 cmets

    WCF 上的primer(例如What Is Windows Communication Foundation?)是一个很好的起点。 WCF 可以使用 SOAP 来实现深入的契约。 WCF 还使用 Windows 内的各种通信工具(以及您想要创建的任何自定义工具),因此内置了跨机器对话。

    合同 (IMO) 的本质意味着它存在于通信的双方。在纯.net 案例中,我通常将contract definitions 放在单独的程序集中并共享它们。在其他地方,我使用WSDL 作为主要合同定义,以便客户端和服务共享定义。

    编辑:回答 cmets

    您可以轻松地在 WCF 中构建简单的通信示例(前提是您了解 Windows 上的通信基础知识,包括防火墙等)。然而,做一些定制的事情并不容易,但是网上有很多资源和书籍可以帮助你到达那里。

    我用过的书:

    关于 SO 的另一个问题是“WCF for the Totally Clueless

    【讨论】:

    • 嘿伙计,我可以让 wcf 工作并阅读书籍。这只是我遇到的问题。我不想阅读整本书来找到答案,如果你能给我一个简单的解释,对我来说会容易得多。
    • -1:WCF 并非一直使用 SOAP。它与消息格式无关。例如,netMsmqBinding 不使用 SOAP,web* 绑定也不使用。
    【解决方案2】:

    我不知道您从哪里读到 WCF 的一个好处是它允许客户端和服务器位于不同的网络上。它们已经可以使用 .NET Remoting 或 DCOM(企业服务)在不同的网络上。

    客户确实需要了解服务合同以及使用服务所需的任何其他合同。这可以通过 WSDL 或元数据交换协议 (mex) 提供。如果双方都使用 .NET,则可以共享合约程序集,但这会引入客户端和服务之间的耦合。

    【讨论】:

    • 嘿,我正在看一些 appdev WCF 服务培训,那里已经说过好处。这就是为什么我很困惑并在这里问问题。我不明白为什么网络位置很重要。
    • 网络位置无关紧要。你能发布一个链接到说这话的培训吗?
    • 它在视频本身里面没有我可以指向它的链接。我可以找到任何其他地方这么说,我认为这一定是一个错误。谢谢你的回答。跨度>
    • 不,我指的是视频链接。
    【解决方案3】:

    以前的 Microsoft 技术是针对特定环境中的某些特定需求而设计的。例如,ASMX Web 服务被设计为仅使用 SOAP over Http 发送和接收消息。 .NET Remoting 特定于 Microsoft 环境,没有互操作性。但 WCF 旨在通过任何传输协议(即 HTTP、TCP、NamedPipes、MSMQ 等)使用任何格式(默认为 SOAP)发送和接收消息。

    您的第二个问题“但是客户端如何理解从 WCF 服务返回的类型?” 它通过代理,客户端与包含所有类型等的代理进行交互。

    您可以找到一个很好的 concepts and questions here 来了解 WCF 核心概念。

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多