Моя служба WCF работает нормально на компьютере с Windows 7 Enterprise, но происходит сбой при размещении на Windows Server 2003 (тот же код) - PullRequest
0 голосов
/ 04 августа 2010

Мы использовали машину Windows 7 Enterprise для разработки, и у нас есть 7 служб wcf .... Все они отлично работали на машине разработки ... Когда мы размещали одни и те же службы в Windows Server 2003 и IIS 6, мы сталкиваемся с парой проблем ... Одна из служб выдает ошибку "Существующее соединение было принудительно закрыто удаленным хостом" ... базовое соединение закрывается прямо при вызове службы .... Я включил вход в систему с log4net, и я включил трассировку ... В журналах трассировки я обнаружил, что он выполняет почти все шаги и останавливается в конце шага Execute ... Поэтому я поместил в код отладочные операторы log4net, и это выглядит как Код выполняется нормально, извлекает значения из базы данных, но он закрывает соединение в тот момент, когда он возвращает данные. Так что в момент возврата данных какое-то исключение закрывает соединение ... И я не могу понять, почему или что вызывает ошибку ... И тот же код прекрасно работает на компьютере с Windows 7 Enterprise ... Поэтому я не был уверен, что нужно искать проблемы с кодом или это какая-то особая установка, которая нужна IIS 6.0 ... Ребята, вы не знаете, что может быть не так в этой ситуации ... спасибо за любую помощь.

И есть другая служба, которая показывает ошибку «Запрошенная служба,« XXXXXXXXXXXXXXXXX »не может быть активирована» ... Частые вызовы, такие как немедленные вызовы той же службы, кажется, вызывают эту ошибку. следует избегать, потому что некоторые службы, по-видимому, демонстрируют такое поведение в Windows Server 2003 - IIS 6, и все они прекрасно работают на компьютере с Windows 7?

1 Ответ

1 голос
/ 05 августа 2010

Да. Я включил MessageLogging и обнаружил, что является первой ошибкой .... Не удается сериализовать причину этого - ответу назначаются объекты из запроса.Таким образом, в Windows 7 он разрешает это и сохраняет ссылки живыми, но Windows Server 2003 отбрасывает все объекты запроса, поэтому к моменту сериализации ответа некоторые ссылки на объекты перестают действовать в Windows 2003 и, следовательно, отключают соединение.Итак, это решает первое.Поэтому я просто создал новый объект в службе и скопировал значения, и он начал работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...