Ошибка трассировки WCF: была предпринята попытка выполнить операцию на несуществующем сетевом соединении - PullRequest
1 голос
/ 26 августа 2010

Я настроил трассировку службы WCF, потому что 1 клиент из 30 не смог завершить соединение с сервером.После настройки тестового примера на этом клиенте отчет трассировки WCF дал мне следующие исключения:

Была предпринята попытка выполнить операцию на несуществующем сетевом подключении

, а затем

Операция ввода-вывода была прервана из-за выхода из потока или запроса приложения

Я нашел этот вопрос MSDN и решение, которое применяется к Windows2000 Server и Terminal Services и предлагает исправление для исправления проблемы.

Я использую Windows 2003 Server, поэтому исправление не относится ко мне.Кто-нибудь знает, что происходит с этим 1 клиентом, в то время как остальные 29 подключаются нормально?

Редактировать: Клиент возвращает это исключение при попытке открыть соединение с сервером:

Произошла ошибка при получении ответа HTTP на http://endpointaddress/. Это может быть связано с тем, что привязка конечной точки службы не использует протокол HTTP.Это также может быть связано с тем, что сервер прерывает контекст HTTP-запроса (возможно, из-за закрытия службы).Более подробную информацию смотрите в журналах сервера.

1 Ответ

0 голосов
/ 01 октября 2010

Я недавно столкнулся с этой проблемой.Основной проблемой был контекст, в котором были сделаны вызовы.

У меня было много кода, который выглядел так:

New()
{
    IPC_Server.LoadFirstSetOfData();
}

IPC_Server_LoadFirstSetOfData_Completed(Object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
    IPC_Server.LoadSecondSetOfData();
}

IPC_Server_LoadSecondSetOfData_Completed(Object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
    ShowDataToUser();
}

Проблема с этим состояла в том, что я звонил 2-мФункция IPC, пока я был внутри 1-го обратного вызова.По какой-то причине выполнение этого «портит» следующий вызов.Переместив наши вызовы IPC из обратных вызовов, мы решили эту проблему.

Теперь как вы решите перевести вызовы из обратных вызовов, зависит от вас.Может быть, изменение контракта?Имеете таймер, который наблюдает за поступлением 1-го обратного вызова, а затем выполняет 2-ой вызов IPC из таймера?Выбор за вами.

...