C# 超时Web服务客户端
首先对不起我的英语 我有一个web服务的问题,这是由一个客户端提供的,很遗憾,我不能改变任何东西,他们无论如何都拒绝,现在他们用java使用这个web服务,但在我的工作中这是不可能的 使用下面的代码,我可以检索一个高达8k的响应,但超出此范围的任何内容都会得到一个“timeoutexception”,我尝试使用一个字符串流来保存响应。我对Web服务相当陌生,所以我可能遗漏了一些东西C# 超时Web服务客户端,c#,web-services,C#,Web Services,首先对不起我的英语 我有一个web服务的问题,这是由一个客户端提供的,很遗憾,我不能改变任何东西,他们无论如何都拒绝,现在他们用java使用这个web服务,但在我的工作中这是不可能的 使用下面的代码,我可以检索一个高达8k的响应,但超出此范围的任何内容都会得到一个“timeoutexception”,我尝试使用一个字符串流来保存响应。我对Web服务相当陌生,所以我可能遗漏了一些东西 public String obtenerData(int idCuestionario, string fech
public String obtenerData(int idCuestionario, string fechaInicio, string fechaFinal, string path)
{
try
{
String request = "<request><token><![CDATA[" + Globals.token + "]]></token>" +
"<idCuest><![CDATA[" + idCuestionario + "]]></idCuest>" +
"<fechaInit><![CDATA[" + fechaInicio + "]]></fechaInit>" +
"<fechaFin><![CDATA[" + fechaFinal + "]]></fechaFin>" +
"</request>";
response = (string)(wsRep.generaReporte(request));
try
{
doc.LoadXml(response);
if (String.IsNullOrEmpty(path))
{
doc.Save(idCuestionario + "_" + ".xml");
}
else
{
doc.Save(path + "\\" + idCuestionario + "_" + ".xml");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Globals.token = Globals.tokenK.obtenerToken(response);
}
public String obtenerData(int-idCuestionario、String-fechaInicio、String-fechaFinal、String-path)
{
尝试
{
String request=“”+
"" +
"" +
"" +
"";
响应=(字符串)(wsRep.generareport(请求));
尝试
{
doc.LoadXml(响应);
if(String.IsNullOrEmpty(path))
{
doc.Save(idCuestionario++“+.xml”);
}
其他的
{
doc.Save(path+“\\”+idCuestionario+“\+.xml”);
}
}
捕获(例外情况除外)
{
MessageBox.Show(例如Message);
}
Globals.token=Globals.tokenK.obtenerToken(响应);
}
}
这是web.config
<binding name="ReportesWebServiceSoapBinding" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
您是否尝试增加超时时间 e、 g
我无法访问,不知何故提供的端点不让我,我只是觉得奇怪,他们的java客户端没有问题。你能提供你用来创建wsRep对象的代码吗?
wsRep.Timeout = 20000; // 20 second