C# 超时Web服务客户端

C# 超时Web服务客户端,c#,web-services,C#,Web Services,首先对不起我的英语 我有一个web服务的问题,这是由一个客户端提供的,很遗憾,我不能改变任何东西,他们无论如何都拒绝,现在他们用java使用这个web服务,但在我的工作中这是不可能的 使用下面的代码,我可以检索一个高达8k的响应,但超出此范围的任何内容都会得到一个“timeoutexception”,我尝试使用一个字符串流来保存响应。我对Web服务相当陌生,所以我可能遗漏了一些东西 public String obtenerData(int idCuestionario, string fech

首先对不起我的英语

我有一个web服务的问题,这是由一个客户端提供的,很遗憾,我不能改变任何东西,他们无论如何都拒绝,现在他们用java使用这个web服务,但在我的工作中这是不可能的

使用下面的代码,我可以检索一个高达8k的响应,但超出此范围的任何内容都会得到一个“timeoutexception”,我尝试使用一个字符串流来保存响应。我对Web服务相当陌生,所以我可能遗漏了一些东西

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