【问题标题】:WCF Server/Client connection handlingWCF 服务器/客户端连接处理
【发布时间】:2010-09-22 22:30:32
【问题描述】:

我的 WCF 服务器和客户端连接出现了一些问题。

如果我正常使用我的服务和客户端,这意味着我的客户端通过正常操作 (myclient.Close()) 连接和断开连接,一切正常。但是在我让服务器运行并且我使用 Visual Studio“停止”按钮退出我的客户端应用程序的情况下,我的服务器和客户端通信似乎搞砸了,服务器没有正确清理连接和任何新连接来自我的客户的非常不稳定,只有某些函数调用才能工作,直到一个函数抛出异常:

System.ServiceModel.CommunicationException:接收到http://localhost:8080/Design_Time_Addresses/Service_Beta1/Service 的 HTTP 响应时出错。这可能是由于服务端点绑定未使用 HTTP 协议。这也可能是由于服务器中止了 HTTP 请求上下文(可能是由于服务关闭)。有关更多详细信息,请参阅服务器日志。 ---> System.Net.WebException:底层连接已关闭:接收时发生意外错误。

在那之后还有许多其他的例外,我会让你免于阅读这些。

如果我关闭服务器和客户端并重新启动两者,我的所有调用都可以正常工作,直到我在 Visual Studio 中执行剧烈的“停止”。如何强制服务器清理不正确关闭的连接?我知道在生产中“停止”按钮消失了,理论上不应该有问题,但我不想因为客户端崩溃或断开连接而出现服务器连接问题。因为不可避免地会有这些情况。最好在有 20 多个客户端尝试连接并获得异常之前解决此问题。

谢谢

【问题讨论】:

    标签: vb.net wcf wcf-binding


    【解决方案1】:

    很抱歉花了这么长时间才回复。我的问题是我将数据表传回给客户端,但在创建时没有给表命名。见下文。

    Dim dt As New DataTable() 'Passing just a blank un-named table to client gave errors.
    Dim dt As New DataTable("Table") 'Naming the table like so passes just fine.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多