我有一个使用带有 CLR 存储过程的 SQL Server 2005 Express 的小型应用程序。它已成功安装并在许多运行 XP 和 Vista 的计算机上运行。
要创建程序集,请执行以下 SQL(更改名称以保护无辜者):
CREATE ASSEMBLY myAssemblyName FROM 'C:\PathToAssembly\myAssembly.dll
在一台运行 Vista 并且具有一些非常激进的安全策略限制的计算机(反映其他要安装的计算机的测试计算机)上,我收到以下错误:
消息 6218,级别 16,状态 2,服务器域\服务器名称,第 2
行为程序集“myAssembly”创建程序集失败,因为程序集“myAssembly”验证失败。检查引用的程序集是否是最新的并且受信任(对于 external_access 或不安全)以在数据库中执行。如果有任何 CLR 验证程序错误消息将跟随此消息[ : myProcSupport.Axis::Proc1][mdToken=0x6000004] [HRESULT 0x8007000E] - 没有足够的存储空间来完成此操作。
[ : myProcSupport.Axis::Proc2][mdToken=0x6000005] [HRESULT 0x8007000E] - 没有足够的存储空间来完成此操作。
[ : myProcSupport.Axis::Proc3][mdToken=0x6000006] [HRESULT 0x8007000E] - 没有足够的存储空间来完成此操作。
[ : myProcSupport.Axis::.ctor][mdToken=0x600000a] [HRESULT 0x8007000E] - 没有足够的存储空间来完成此操作。
[ : myProcSupport.Axis::Proc4][mdToken=0x6000001] [HRESULT 0x8007000E] - 没有足够的存储空间来完成此操作。
[ : myProcSupport.Axis::Proc5][mdToken=0x6000002] [HRESULT 0x8007000E] - 没有足够的存储空间来完成此操作。
[ : myProcSupport.Axis::Proc6][mdToken=0x6000007] [HRESULT 0x8007000E] - 没有足够的存储空间来完成此操作。
[ : myProcSupport.Axis::Proc7][mdToken=0x6000008] [HRESULT 0x8007000E] - 没有足够的存储空间来完成此操作。
[ : myProcSupport.Axis::Proc8][mdToken=0x6000009] [HRESULT 0x8007000E] - 没有足够的存储空间来完成此操作。
[ : myProcSupport.Axis::Proc8][mdToken=0x600000b] [HRESULT 0x8007000E] - 没有足够的存储空间来完成此操作。
[ : myProcSupport.Axis::Proc9][mdToken=0x600000c] [HRESULT 0x8007000E] - 没有足够的存储空间来完成此操作....
C# DLL 被定义为SAFE
它只使用数据库中包含的数据。DLL 通常没有签名,但我提供了一个签名版本来测试并收到相同的结果。
安装是由其他人完成的,我无权访问该框,但他们正在执行我提供的脚本并在其他计算机上工作。
除了脚本提供的结果之外,我试图找到有关此错误的信息,但我没有发现任何有用的信息。
执行脚本以创建程序集的人使用管理员帐户登录,以管理员身份运行 CMD,通过 Windows 身份验证连接到数据库,已添加到 dbo_owner 角色,并希望添加到服务器角色 SysAdmin这是一个权限问题。这并没有改变什么。
我是否需要为此环境配置不同的 SQL Server 2005 Express?
除了 SQLCMD 的输出之外,此错误是否记录在任何地方?什么可能导致此错误?Vista 安全策略会导致这种情况吗?
我无法使用计算机(客户正在测试),所以我无法自己检查盒子。
TIA