【问题标题】:WCF and moving the proxy code to a DLL. Is it possible?WCF 并将代理代码移动到 DLL。是否可以?
【发布时间】:2009-04-20 11:10:23
【问题描述】:

看起来我无法成功地将我的 WCF 代理代码移动到单独的 DLL 中(与我在遇到的所有示例中看到的 EXE 不同)。

我尝试这样做的原因是我希望我的代理代码被不同的客户端(可能是非托管代码)调用,这些客户端可能对 WCF 一无所知,但只需要访问服务(通过 Facade可能被代理暴露了?)。

每当我将创建新代理的以下代码移动到同一解决方案中的不同 VS 项目时,我都会得到可怕的“在 ServiceModel 客户端中找不到引用合同‘localhost.IRemoteCommandService’的默认端点元素”配置节”异常

localhost.RemoteCommandServiceClient proxy = 
    new localhost.RemoteCommandServiceClient();

只要在代理代码所在的同一项目中的 Main 方法中使用相同的代码(从 Visual Studio 自动生成),它就可以顺利运行。

有什么想法吗?我希望我的代理的客户端代码不需要将服务模型 XML 配置作为代理,因为这会破坏我首先将 WCF 代理代码移动到 DLL 的目的。

谢谢, 斯特凡诺

【问题讨论】:

    标签: c# wcf proxy


    【解决方案1】:

    端点确实通常在配置文件中指定。您必须查看配置文件中的 serviceModel 数据,并将其复制到您的调用 app.config - 或者您需要使用更详细的方式在代码中创建代理(即通过代码指定地址、绑定、配置等给构造函数)。

    【讨论】:

      【解决方案2】:

      如果您不想在客户端上进行端点配置,则必须通过在代码中指定所有内容来将其嵌入到您的代理 dll 中。

      另一种选择是使用动态代理,例如 one,这将允许您在客户端应用程序中没有 serviceModel。

      【讨论】:

      • 谢谢,对端点信息进行编码就可以解决问题(尽管我希望我可以避免这种情况)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 2014-03-29
      • 1970-01-01
      • 2017-11-02
      • 2020-10-16
      • 2018-11-21
      相关资源
      最近更新 更多