【问题标题】:Package up a WCF client into an assembly for consumers将 WCF 客户端打包为消费者的程序集
【发布时间】:2011-09-02 06:45:51
【问题描述】:

我在组织内托管 WCF 服务,我希望将客户端构建到程序集 DLL 中以打包并提供给任何想要使用该服务的人。

我可以创建一个类库,然后简单地添加一个服务引用、构建它并分发它。关于替代方法的任何建议?

【问题讨论】:

    标签: c# .net wcf .net-assembly


    【解决方案1】:

    我只想提供一个包含所有必需合同的库。就是这样 - 他们可以编写自己的客户端代理。

    您的用户知道如何使用 WCF 吗?如果没有,请包含一个实例化通道并调用服务的代理类。

    我真的认为提供只包含由 svcutil 生成的代码的程序集没有任何意义。为什么不给您的用户一个 WSDL,然后他们可以自己生成该代码?分发样板文件似乎不是一个好主意。

    【讨论】:

      【解决方案2】:

      我在以前的组织中做过类似的事情。我还要求库应该是 COM 可见的,以便旧版 C++ 应用程序可以使用 API。

      我什至没有要求客户端提供任何 WCF 配置,除了通过 API 传递一堆参数(服务 URL、超时等...)。 WCF 以编程方式配置。我处于一个非常严格控制的环境中,在那里我完全了解图书馆的客户并且可以影响他们的设计。这种方法对我有用,但正如他们所说,您的里程可能会有所不同。

      【讨论】:

      • 我很想知道如何在代码中设置 WCF 配置。您能否提供有关如何执行此操作的任何指示?
      • 你应该可以用谷歌搜索它。尝试从这里开始:stackoverflow.com/questions/2943148/…
      【解决方案3】:

      服务主机是什么?如果它是一个基于 HTTP 的应用程序,那么将其放入 ASP.NET 应用程序是很有意义的。否则,是的,启动类库。

      根据评论更新

      客户端打包真的取决于接收者要做什么。如果您的目标是开发人员或现有的内部应用程序,那么该库是一个不错的选择(尽管我可能会将其包装在 .msi 中以使用户熟悉该体验)。如果需要 UI,那么显然您需要考虑一个合适的 UI 框架(WPF、Silverlight、WinForms 等)

      【讨论】:

      • 抱歉,我的问题含糊不清。我其实是想打包客户端,而不是服务
      【解决方案4】:

      在我之前的工作中,我们总是这样做。我们将有一个库项目,其中只包含一个 SVCUTIL 代理生成和与之配套的配置文件。

      通过这种方式,我们的其他项目可以使用这个库,并且我们只会有一个代理生成。非常适合 SOA 模型。

      在您的情况下,您可以根据需要分发此程序集。就个人而言,我发现您控制的内部案例的好处更大,但我想如果您真的觉得慈善,分发一个 .NET 版本供客户使用将是有益的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-24
        • 2015-09-18
        • 2019-10-23
        • 1970-01-01
        相关资源
        最近更新 更多