服务器可能在聚合函数中耗尽资源

时间:2013-06-11 10:35:42

标签: c# sql-server-2012 sqlclr

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

我尝试以执行'dbo'的方式运行它,但这对我没有帮助。我还尝试将AUTHORIZATION设置为ON

  

尝试加载时,Microsoft .NET Framework中发生错误   程序集ID 65958.服务器可能正在耗尽资源,或   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 fileName,   String codeBase,Evidence assemblySecurity,RuntimeAssembly   locationHint,StackCrawlMark& stackMark,Boolean throwOnFileNotFound,   Boolean forIntrospection,Boolean suppressSecurityChecks)

     

在   System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(的AssemblyName   assemblyRef,Evidence assemblySecurity,StackCrawlMark& stackMark,   Boolean forIntrospection,Boolean suppressSecurityChecks)

     

at System.Reflection.RuntimeAssembly.InternalLoad(String   assemblyString,Evidence assemblySecurity,StackCrawlMark& stackMark,   布局forIntrospection)

     

在System.Reflection.Assembly.Load(String assemblyString)

1 个答案:

答案 0 :(得分:1)

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

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

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

    使用your_db_name; 更改DATABASE上的AUTHORIZATION :: your_db_name TO SA; GO

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

    SELECT * FROM [master]。[sys]。[databases] - 这里有关数据库的信息

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