Изменение сборки SQL Server приводит к ошибке свойства настроек - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть CLR, который запускает отчет SSRS.Я создал его три года назад, и мне пришлось обновить его на этой неделе (сменился жесткий код IP).Это единственный, который я когда-либо писал, поэтому в 2015 году я написал заметки о том, как его обновить.Первоначально казалось, что это работает - я перестроил dll из проекта C #, сохранил dll поверх старой dll на сервере и выполнил следующую команду:

alter assembly CLRtest4 from 'c:\HMCA_DLLs\CLRTest4.dll' with permission_set = SAFE;

При запуске теперь выдается следующая ошибка:Msgstr "Свойство настроек 'CLRtest4_hdnysql1_ReportExecutionService' не найдено".

В C # у меня есть:

// Report Server Settings
            var reportExecutionService = new ReportExecutionService();

            reportExecutionService.Credentials = System.Net.CredentialCache.DefaultCredentials;

            System.Net.NetworkCredential nc = new System.Net.NetworkCredential("DDR", "<password>");
            reportExecutionService.Credentials = nc;

            reportExecutionService.Url = "http://hdnysql1/reportserver/reportexecution2005.asmx";

Этот код не был затронут.Я проверил, что в каталоге есть файл dll.config вместе с DLL;есть, и это не изменилось с трех лет назад.Я искал в Интернете и не могу найти ничего об этой ошибке;У меня нет опыта в этом, кроме как раз в три года назад, и я был бы очень признателен за любую помощь.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Я поговорил с консалтинговой фирмой SQL и получил ответ;Я бы опубликовал здесь название компании, но не уверен, что это противоречит правилам StackOverflow.

Файл конфигурации должен был называться sqlserver.exe.config, и он должен находиться в папке binn, которую я получилс помощью этого запроса:

SELECT [filename] FROM sys.dm_server_services WHERE servicename LIKE N'SQL Server (%';

Файл существовал в этом месте, но по какой-то причине в нем не было соответствующих строк конфигурации, даже если код ранее работал.Предположительно, правильный конфиг был каким-то образом кэширован перед перемещением файла.Я скопировал правильный файл конфигурации в этот каталог и переименовал его, а затем

DBCC FREESYSTEMCACHE('ALL')

, а затем

alter assembly CLRtest4 from 'c:\HMCA_DLLs\CLRTest4.dll' with permission_set = UNSAFE;

Это устранило проблему.

0 голосов
/ 21 ноября 2018

Ваш конфигурационный файл DLL должен называться так же, как ваш DLL.Параметр

CLRtest4_hdnysql1_ReportExecutionService

должен существовать в файле конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...