WCF Основное соединение было закрыто: при получении произошла непредвиденная ошибка - PullRequest
0 голосов
/ 08 ноября 2010

Я звоню в службу WCF из веб-приложения.Это хорошо работает для местного веб-сервиса.Когда служба развернута на сервере dev, выдает ошибку выше.Webservice возвращает список пользовательских объектов в формате xml.

[OperationContract()]
    [WebInvoke(Method = "POST", UriTemplate = "/track/get", ResponseFormat = WebMessageFormat.Xml)]
    List<tokenCount> GetTracking(System.IO.Stream data);

Если я возвращаю только строку из веб-службы, она работает нормально.Другие операции в веб-сервисе работают нормально.

        oRequest.ContentLength = aBytes.Length;
        oRequest.KeepAlive = false;
        oRequest.ProtocolVersion = HttpVersion.Version10;
        oRequest.ConnectionGroupName = Guid.NewGuid().ToString();
        oRequest.Timeout = 60000; 
        using (Stream oRequestStream = oRequest.GetRequestStream())
        {
            oRequestStream.Write(aBytes, 0, aBytes.Length);               
            using (HttpWebResponse oResponse = (HttpWebResponse)oRequest.GetResponse())
            {
                using (StreamReader oReader = new StreamReader(oResponse.GetResponseStream(), Encoding.UTF8))
                {
                    Response.ContentType = "application/xml";                     
                    //resDoc = CreateMetaFile(oReader.ReadToEnd());
                    string r = oReader.ReadToEnd(); 
                }
            }
        }

1 Ответ

2 голосов
/ 08 ноября 2010

Как сколько объектов вы возвращаете ??

Если это число становится большим, вы можете столкнуться с двумя проблемами:

  • тайм-аут: сервер можетпотребуется слишком много времени, чтобы подготовить ответ, и WCF прервет вызов
  • size: ваш размер может превысить настройки maxReceivedMessageSize на вашем клиенте и, таким образом, будет прерван
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...