На эту тему открыто много тем, но ни в одной из них нет ответа на мою проблему, поэтому я собираюсь попробовать.
Система: Windows Server 2012 SQL Server 2012 Enterprise Edition.
Проблема: мы используем SQLDependency, чтобы включить использование уведомления о запросе в нашем приложении, что означает, что оно создает свою собственную службу, очередь и процедуру.
Вопрос 1. Глядя в хранимую процедуру, я вижу, что она получает верхний 0. Что значит делать верхний 0?
Теперь о реальной проблеме. Иногда журнал ошибок заполняется следующими сообщениями (до такой степени, что я не могу его открыть): Доставка уведомления о запросе не может отправить сообщение в диалоговом окне «X»... из-за следующей ошибки в сервис-брокере: "дескриптор диалога X не найден. Сообщения появляются с одним и тем же дескриптором_беседы или с тремя разными.
когда я запрашиваю этот разговор из sys.conversation_endpoints, я вижу его, и он помечен как is_system = 1 (STARTED_OUTBOUND).
Я добавил предупреждение об ошибке 9245, чтобы попытаться определить, почему это происходит, когда это происходит. В сообщении «В течение последнего временного интервала было подавлено X ошибок уведомлений о запросах» значение X огромно и превышает 10 000. я предполагаю, что число связано с повторными испытаниями, потому что у нас нет такого количества уведомлений.
Сначала я подумал, что это может быть связано с сообщением «DialogTimer», потому что я заметил, что когда я заканчиваю беседу этого конкретного сообщения, сообщения останавливаются, но в последнее время это не сработало, поэтому единственное, что я мог сделать, чтобы остановить это, это установить NEW_BROKER .
это происходит немедленно, когда я возвращаюсь к нашему пулу приложений, хотя я вижу в наших журналах, что он вызывает SQLDependency.Stop , я не вижу удаленных объектов (служба, очередь и процедура), и сообщения об ошибках начинают заполнять журнал ошибок.
Пожалуйста, дайте мне знать, если потребуется дополнительная информация. Ценю твою помощь,