Один из самых простых областей потерять много времени на при разработке WCF услуг в конфигурации связывания , Резервируйте свои рабочие конфигурации религиозно, для начала, в репозитории исходного кода. Вы также можете добавить процедуру проверки для самого файла конфигурации, которая выполняется до создания службы.
Что касается отладки таких проблем WCF, то действительно нет замены старой старой Trace.WriteLine(), которая записывает в TraceListener, который сопоставляется с файлом, службой и клиентом. Но на самом деле, учитывая, что ваша проблема довольно распространена и, скорее всего, на 100% связана с конфигурацией, я бы посоветовал узнать больше о настройках привязки, особенно о тайм-аутах. Установите значения на произвольно большие числа или даже на Timeout. Неограниченное числовое значение (в виде строки), которое буквально скажет WCF, чтобы разрешить бесконечный тайм-аут. Тогда спросите себя, почему что-то будет тайминг, который не делает этого с небольшим изменением привязки.
Что касается конкретной проблемы, возможно, что сеансы не прекращаются должным образом, потому что клиентские прокси не закрываются должным образом, вызвав метод Close() явно. Возможно, вам удастся избежать этого, когда вы имеете дело с сеансовыми привязками, но сеансы не будут выпущены, если вы не закроете прокси. Побочным эффектом этого будет то, что будут достигнуты значения дросселирования по умолчанию, обычно равные 10 параллельным сеансам. После того, как вы понимаете жизненный цикл сеанса, вы можете посмотреть свойства IsInitiating, IsTerminating и IsOneWay, которые могут быть указаны для атрибутов OperationContract для методов контракта на обслуживание.
Вот несколько полезных ресурсов:
OperationContract: (странно URL, который не будет связывать)
http://en.csharp-online.net/WCF_Services -OperationContract_Attribute
Использование Сессии:
http://msdn.microsoft.com/en-us/library/ms733040.aspx
Удобный Резюме WCF, инстанцирование и надежная передача сообщений
http://www.pluralsight.com/community/blogs/aaron/archive/2006/02/27/19253.aspx
И, как уже упоминалось, Брайан, мой ответ дросселирования вопрос:
WCF Service Throttling
Я знаю, что знаю (см. Последний параграф). Мой вопрос был в другом. – aogan
Извините, пропустил ваш комментарий. Но зачем вам нужен другой способ? – dotmad
Мне просто интересно, есть ли что-то еще там. Также я обнаружил, что трассировка не так проста в использовании, особенно при наличии сообщений протокола (безопасность, надежные сообщения). – aogan