【问题标题】:Can a .Net 2.0 winforms client app connect to a Windows Server .Net 3.5 WCF service? - architectural advice needed.Net 2.0 winforms 客户端应用程序可以连接到 Windows Server .Net 3.5 WCF 服务吗? - 需要架构建议
【发布时间】:2010-12-24 20:17:39
【问题描述】:

在我工作的银行中,所有客户端工作站都安装了 .Net 2,我无法控制影响或在客户端安装更新版本的框架。在服务器端,我有更多的控制权,如果我愿意,我可以编写一个 .Net 3.5 WCF 服务。

我有一个现有的胖客户端,我想对其进行重构并将其数据访问代码 (Oracle Odp.net) 转移到服务背后的服务器上(以消除客户端工作站对 Oralce 10g 客户端的依赖)。

我的问题是,如果我将此数据层放在 WCF 服务后面,我可以从客户端上的 .Net 2.0 GUI 应用程序访问它吗?还是客户端工作站也需要 .net 3.0/3.5?

除了连接到具有 .Net 3.5 SP1 的 Windows 2003 Server 的开发机器上的几个原型应用程序外,我没有太多使用 WCF,因此我正在寻求建议。

另一个考虑因素是,IIS 在这家银行被视为闯红灯技术(未经许可禁止)

更新

我的 WCF 服务在控制台应用程序中运行,当它接收和处理调用时,我会回显到控制台输出。在我的 Client .net 2 端,我选择了添加 Web Reference 并拨打电话。但是我得到一个错误,即使我得到了错误,控制台输出的回显仍然在服务器端生成,所以它被接收只是没有正确返回。错误是:

异常:底层连接已关闭:接收时发生意外错误。

内部异常:无法从传输连接读取数据:现有连接被远程主机强行关闭。

如何解决这个问题?

【问题讨论】:

  • 我也有同样的情况。您是否找到了如何托管可以被 .net 2.0 winform 使用的服务(考虑到我们不能使用 IIS)。谢谢

标签: c# wcf oracle .net-3.5 .net-2.0


【解决方案1】:

您是否可以选择通过 basicHttpBinding 公开服务,模拟 asmx 样式的行为?

恐怕这是我目前能给出的最佳答案,因为我很幸运不必重新适应旧的 .Net 应用程序。

【讨论】:

    【解决方案2】:

    如果 WCF 服务公开了一个 basicHttpBinding 端点,那么 .NET 2.0(或任何其他使用 SOAP 的代码)应该能够毫无问题地使用它。

    【讨论】:

    • 该死 - 让我领先几秒钟... ;)
    • 您还可以使用 REST 竞价并使用 WebClient 访问它。
    • 我应该使用哪些 .Net 2 库/类来使用带有 basicHttpBinding 端点的 WCF 服务?一些示例代码会很棒。
    • 你不需要任何例子,真的。只需使用“添加 Web 引用”,就像 ASMX 一样。
    • 好的,在服务器端我如何运行它并让它坐在那里等待服务器传入的请求?我没有可用的 IIS,所以除了我的 WCF 项目之外,我还需要编写一个控制台应用程序来启动 WCF 服务并让它继续运行吗?还是通过 Windows 服务执行此操作?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多