关闭SOAP连接

时间:2009-01-30 13:33:33

标签: c# soap

我已将soap连接到服务器,服务器似乎没有删除该连接,在netstat中,连接状态列为CLOSE WAIT。

我被告知创建soap连接的客户端必须向服务器发送命令才能关闭连接。谁能告诉我在C#中执行此操作的正确方法?下面是一段示例代码。

SOAPServer.Service Soap = new SOAPServer.Service(); // SOAPServer is a web reference
Soap.Timeout = 30000;
string[] SOAPReturnResult = Soap.DepotData(100, "Test");
Soap.Dispose();

2 个答案:

答案 0 :(得分:0)

将其包裹在使用区块中。

using (SOAPServer.Service Soap = new SOAPServer.Service())
{
Soap.Timeout = 30000;
string[] SOAPReturnResult = Soap.DepotData(100, "Test");
}

请注意,这仅将连接标记为已关闭。即使在连接关闭后的一段时间内,它仍可能通过netstat显示为打开状态。

答案 1 :(得分:0)

CLOSE WAIT状态意味着服务器从您的客户端收到TCP-FIN(即被动关闭),服务器必须关闭其套接字(将TCP-FIN发送到客户端)以使服务器套接字脱离关闭等待状态。所以这可能不是客户端的问题,而是在服务器端没有正确关闭的服务器端。

客户端的外观如何? FIN-WAIT-1或FIN-WAIT-2可能表明这可能是问题所在。