Не удалось найти файл 'SqlAccess.dll'
При беге
CREATE ASSEMBLY MyAssembly
FROM 'S:\SourceCode\TryUDF\bin\Debug\TryUDF.dll'
возвращается ошибка:
Could not find file 'SqlAccess.dll' in directory 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\'.
Сборка представляет собой библиотеку классов, созданную на основе VS2008. SQL Server 2005. SqlAcesss.dll существует в указанном выше месте, и этот каталог Binn находится в переменной среды PATH для системы. Как я могу диагностировать причину этой проблемы?
3 ответа
Решаемые. Поскольку я следовал процедурам, предложенным Microsoft Baseline Security Analyzer, для защиты SQL Server, возможно, не полностью или неправильно, учетная запись службы SQL Server не имела необходимых разрешений для папки, в которой существует sqlaccess.dll. Сразу после предоставления разрешений (чтение, выполнение, список) ошибка исчезла.
Если он был построен с VS2008, проверьте, используют ли ссылки на объекты SQL в проекте библиотеки SQL 2008. Это может быть вашей проблемой. Возможно, вам придется перекомпилировать вашу библиотеку под библиотеки SQL 2005.
Я не могу найти статью прямо сейчас, но я уверен, что она связана с тем, что DLL не подписана, или с настройкой TRUSTWORTHY на SQL Server. Ошибка говорит, что файл не найден, но на самом деле это означает, что он не смог загрузить его (не то же самое!).
Я бы посоветовал повторно спросить на stackoverflow.com, если вы не разберетесь.