我正在尝试从 .NET 客户端应用程序调用 Web 服务(用 java 编写)。我在一个循环中调用这个网络服务,每次调用它都会返回数据包。我用提琴手监控流量。
当我使用 http 连接时,一切正常。当我尝试通过 https 连接时出现问题。对 Web 服务的第一次调用返回正确的数据(我在提琴手中有 3 个请求:制作隧道、询问证书、调用 Web 服务方法)。在第二次调用期间(fiddler 中只有 1 个条目:调用 Web 服务方法),我只收到部分响应,不能解释为有效的 xml(因为缺少标签)。我也收到
Exception:
An error (Unable to read data from the transport connection: The connection was closed.) occurred while transmitting data over the HTTP channel.
我配置了http绑定,co它不可能是由超时引起的:
<binding name="bdContractorHttpBinding_SSL" openTimeout="00:05:00" closeTimeout="00:05:00" receiveTimeout="00:10:00" sendTimeout="00:05:00" maxReceivedMessageSize="10485760" >
<security mode="Transport">
<transport clientCredentialType="Basic"/>
</security>
</binding>
你知道什么可能导致这些问题吗?
编辑:这是我放入 button_click 事件的代码:
MyService.RequestHeader requestHeader = new MyService.RequestHeader();
MyService.ResponseHeader responseHeader = null;
MyService.GetDataRequest request = new MyService.GetDataRequest();
MyService.GetDataResponset response = null;
requestHeader.RequestID = Guid.NewGuid().ToString();
requestHeader.Timestamp = DateTime.Now;
request.Start = start;
request.Count = count;
MyService.ServiceClient service = null;
using (service = new MyService.ServiceClient("SSL_Endpoint")
{
service.ClientCredentials.UserName.UserName = "xxx";
service.ClientCredentials.UserName.Password = "xxx";
service.Open();
responseHeader = service.GetData(requestHeader, request, out response);
start += count;
service.Close();
}