0

我尝试复制代码并将此功能部署到我的服务器。当我尝试创建函数时,我收到以下消息。这对我来说很奇怪,因为我不使用任何不安全的资源。

我尝试使用 execute as 'dbo' 运行它,但这对我没有帮助。我也尝试设置AUTHORIZATIONON.

尝试加载程序集 id 65958 时,Microsoft .NET Framework 发生错误。服务器可能资源不足,或者程序集可能不受信任PERMISSION_SET = EXTERNAL_ACCESS or UNSAFE。再次运行查询,或查看文档以了解如何解决程序集信任问题。有关此错误的更多信息:

System.IO.FileLoadException:无法加载文件或程序集“exampleaggfunction,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。给定的程序集名称或代码库无效。(来自 HRESULT 的异常:0x80131047) System.IO.FileLoadException:

在 System.Reflection.RuntimeAssembly._nLoad(AssemblyName 文件名,字符串代码库,证据 assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark 和 stackMark,布尔 throwOnFileNotFound,布尔 forIntrospection,布尔suppressSecurityChecks)

在 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,证据 assemblySecurity,StackCrawlMark 和 stackMark,Boolean for Introspection,Boolean suppressSecurityChecks)

在 System.Reflection.RuntimeAssembly.InternalLoad(字符串 assemblyString,证据 assemblySecurity,StackCrawlMark 和 stackMark,Boolean for Introspection)

在 System.Reflection.Assembly.Load(字符串 assemblyString)

4

1 回答 1

1

我已经解决了同样的问题。

在这里寻找解决方案:http: //blogs.msdn.com/b/psssql/archive/2010/03/23/unable-to-load-clr-assembly-intermittently.aspx

  1. 将数据库的所有者更改为保证匹配的 sa。

    使用 your_db_name; 将 DATABASE::your_db_name 上的授权更改为 SA;去

  2. 确保每个数据库中 db_owner 的 SID 与 sys.server_principals 和 sys.databases 匹配: SELECT * FROM [master].[sys].[server_principals] -- 这里是用户的 SID

    SELECT * FROM [master].[sys].[databases] -- 这里是关于数据库的信息

它帮助了我。可能对你有用。

于 2014-01-14T17:05:25.263 回答