Это проблема, которая неделями ставила меня в тупик в среде Live клиента.
Служба WCF размещена на Windows Server 2003 и имеет конечные точки HTTP и MSMQ.
При размещении службы в тестовой среде, служба запускается и останавливается, и сообщения передаются без проблем. Однако в среде Live служба запускается нормально, но не завершается корректно.
При попытке остановить службу, машине требуется много времени для ответа, и в конечном итоге отображается ошибка, говорящая о том, что служба не может быть остановлена. Осматривая ошибку в журнале событий, он говорит, что не смог записать в очередь MSMQ (доступ запрещен), однако служба может читать и удалять сообщения из очереди. Если затем обновить диспетчер служб, служба фактически останавливается.
Очередь MSMQ размещена на другом физическом компьютере, и нам не удалось воспроизвести ошибку в тестовой среде.
Мы не уверены, связано ли это или нет, но служба также иногда прекращает извлекать сообщения из очереди. Это было решено путем перезапуска службы. Опять же, мы не смогли воспроизвести ошибку.
Недавно мы столкнулись с другой ошибкой в клиенте на основе HTTP, когда однажды ночью в полночь служба неожиданно начала отклонять соединения со следующим исключением:
The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Negotiate,NTLM'. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
Еще более любопытно, что простой перезапуск службы, похоже, решает проблему.
Если кто-то видел что-то подобное раньше или у него есть какие-либо комментарии, это было бы очень признательно!