Проблема доверия DLL DLL канала доставки служб Notification Services - PullRequest
3 голосов
/ 15 ноября 2011

У нас есть экземпляр SQL Notifcation Services, для которого мы написали собственный канал доставки.Этот процесс был запущен и запущен в нашей среде контроля качества, работающей под управлением Windows Server 2003 с SQL Server 2005. Потребовалась небольшая доработка, чтобы получить доверенную пользовательскую DLL, однако мы все это заработали.развернул этот код в нашей среде Live.Это запускает Windows Server 2008 с экземпляром SQL 2005 для служб Notification Services, но затем у нас есть экземпляр SQL 2008, на котором размещается фактический экземпляр БД для служб Notification Services.Службы Notification Services работают должным образом, однако мы не можем обеспечить доверие к пользовательской библиотеке DLL, в результате чего пользовательский канал доставки не будет работать.Мы просто получаем ошибку

That assembly does not allow partially trusted callers

Мы пытались использовать утилиту конфигурирования .NET и caspol.exe, чтобы обеспечить полное доверие к DLL без какой-либо удачи..Dll скомпилирован как dll .NET 2, так как сервис уведомлений требует этого.

На данный момент у нас почти нет идей, и мы надеемся, что кто-то может что-то предложить?

Ответы [ 2 ]

3 голосов
/ 22 ноября 2011

Нам удалось исправить нашу проблему.Похоже, что Windows Server 2008 более строг в реализации доступа к коду.Предоставление доступа к .DLL по его строгому имени, а не по пути позволило службам Notification Services получить доступ к коду.

Службы Notification Services не были виновны.

0 голосов
/ 15 ноября 2011

Я думаю, у вас есть один из двух вариантов:

  1. Примите SQL 2008 и избавьтесь от служб Notification Services, поскольку они устарели. Используйте Reporting Services или SSIS, чтобы делать то, что вам нужно.

  2. Вернуться к SQL 2005.

ИМХО, я бы выбрал вариант 1. Продолжение сборки с устаревшими инструментами быстро найдет вас в ситуации, когда поддержка (сообщество или поставщик) будет крайне затруднена.

обновление

Это было слишком долго для комментариев.

Не слишком бить себя по голове, но первой ошибкой было продолжение разработки приложений для технологии, которая была EOL'd (конец жизни) более 3 лет назад. Заявление EOL было обнародовано.

Второй имел среду QA, которая радикально отличается от производства. Перед развертыванием что-нибудь в рабочей среде среда QA должна быть идентичной ... того же типа оборудования, тех же ОС, тех же версий серверов и уровней исправлений. В противном случае, как вы нашли, QA - это шутка.

Теперь, что касается «разрешения», на самом деле есть только один путь: вернуть вашу производственную среду обратно в SQL 2005 с соответствующими исправлениями на месте.

Желаю тебе удачи.

...