Я вырываю свои волосы на этом.Недавно (около месяца назад) некоторые хранимые процедуры на нашем сервере SQL 2000 перестали отправлять электронные письма.У нас есть несколько версий одного и того же хранимого процесса в разных базах данных, которые все сломались одновременно (я понимаю, что это плохой дизайн, но это не то, что я хочу обсудить:))
Хранимые процедуры используют ole-автоматизациюотправлять электронные письма.например,
EXEC @resultcode = sp_OACreate 'CDO.Message', @iMsg OUT
EXEC @resultcode = sp_OASetProperty @iMsg, 'To', 'someguy@domain.com'
Теперь по какой-то причине sp_OASetProperty не работает при установке свойств 'To', 'From', 'Subject' или 'TextBody' .@iMsg не NULL, поэтому создание работает.Также sp_OASetProperty по-прежнему работает для нескольких других свойств:
EXEC @resultcode = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value','2'
EXEC @resultcode = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value', 'smtp.domain.com'
Код результата, который возвращается при сбое sp_OASetProperty, равен -2147220991.Использование sp_OAGetErrorInfo возвращает следующую информацию.Ошибка: 0x80040201, Источник: NULL, Описание: Исключение 0xc0000005 было сгенерировано по адресу ...
Некоторая другая информация, которая затрудняет отладку:
- происходит только на сервере Prod, тестируем, тестируем, работаем и работаем с машинами все в порядке (и все используют один и тот же SMTP-сервер)
- Хранимые процедуры не были изменены в последнее время, они просто сломались один день (и мы некоторое время не замечали, так что трудноточно укажите, какие другие изменения были сделаны за это время)
- Я написал быстрое приложение DotNet и поместил его на сервер для проверки подключения к электронной почте, и оно работало нормально
- Я попытался заменить свою локальную "odsole70".dll "файл с файлом с сервера, и он все еще работал нормально, так что я не верю, что это поврежденный dll
- Я нашел в Google любую возможную комбинацию всей информации, которую я добавил сюда, но нетбезрезультатно