Вопрос

WCF Asynchronous Call - Исключение в Eventhandler

Я делаю асинхронный призыв к методу WCF с EventHandler. Я получаю ошибку на событии «EventAddcallback», и «E.Error» показывает следующую ошибку. Кто -нибудь знает, почему? Я добавляю пример кода, информацию об ошибке, информация о трассировке и параметры, которые я пробовал ..

System.Reflection.TargetInvocationException: Исключение произошло во время операции, что делает результат недействительным. Проверьте Innerexception для деталей исключения. ---> System.serviceModel.communicationException: произошла ошибка при получении ответа HTTP на https://demosite.com/ourservice.asmx. Анкет Это может быть связано с тем, что привязка конечной точки службы не использует протокол HTTP. Это также может быть связано с тем, что контекст HTTP -запроса прерывается сервером (возможно, из -за выключения службы). Смотрите журналы сервера для более подробной информации. ---> System.net.webexception: базовое соединение было закрыто: неожиданная ошибка произошла при получении. ---> System.io.ioException: Невозможно прочитать данные из транспортного соединения: существующее соединение было насильно закрыто удаленным хостом. ---> system.net.sockets.socketException: существующее соединение было насильно закрыто удаленным хостом

Я включил трассировку, и это показывает ..

System.ServiceModel.CommunicationException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
An error occurred while receiving the HTTP response to https://demosite.com/ourservice.asmx. This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.
-->System.Net.WebException, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-->The underlying connection was closed: An unexpected error occurred on a receive.
------>System.IO.IOException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
------>Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
---------->System.Net.Sockets.SocketException, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
---------->An existing connection was forcibly closed by the remote host


Options I tried..
1. Increased 
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
              maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>

2. Enabled 'Keep Alive', increased buffer size(s)
<httpsTransport maxReceivedMessageSize="2147483647" keepAliveEnabled="true" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" />              

3. added endpointBehaviors

      <endpointBehaviors>
        <behavior name="demo">
          <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
        </behavior>
      </endpointBehaviors>

    class Program
    {
        static ManualResetEvent closeapp = new ManualResetEvent(false);
        static void Main(string[] args)
        {
            wcfclient.AddCompleted += new EventHandler<AddCompletedEventArgs>(EventAddCallback);
            wcfclient.AddAsync(employees);
            closeapp.WaitOne(); 
        }
        static void EventAddCallback(object sender, AddCompletedEventArgs e)
        {
            try
            {
                if (e.Error != null)
                {
                    wcfclient.Close();
                    closeapp.Set(); 
                }else
                {
                   //Continue with other calls.
                }
            }
            catch (Exception ex) {
                throw ex;
            }
        }
    }
Это было полезно?

Решение

У вас есть неправильная безопасность Vindig для привязки. Либо вы должны перейти на HTTP (что вы, вероятно, не можете из -за настройки сервера), либо вам следует переключиться на транспортировку безопасности в конфигурации привязки клиента.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top