sql server 注册.net 程序集失败问题

龟叔啊 2018-08-25 08:19:20
大家好!

请教各位做过sql server 注册程序集的,我注册程序集遇到了如下问题:
我创建了一个.net FrameWrok3.5的类库项目,编译后在SQL SERVER 2008 R2数据库中进行注册,通过搜索网上资料在SQL SERVER运行如下语句注册:(SQL SERVER 用户 使用Sa)


--开启CLR集成
EXEC sp_configure 'clr enabled','1'
go
--重新配置 就是用来更新使用sp_configure 系统存储过程更改的配置选项的当前配置值
reconfigure

CREATE ASSEMBLY [ApprovalShareAPI] FROM 'E:\ApprovalShareAPI.dll' WITH PERMISSION_SET = UNSAFE


运行结果


配置选项 'clr enabled' 已从 1 更改为 1。请运行 RECONFIGURE 语句进行安装。
消息 10301,级别 16,状态 1,第 4 行
程序集 'ApprovalShareAPI' 所引用的程序集 'system.web, version=2.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a.' 不在当前数据库中。SQL Server 已尝试定位并自动从引用程序集所在的位置自动加载被引用程序集,但此操作失败(原因: 2(系统找不到指定的文件。))。请将被引用程序集加载到当前数据库中,然后重试您的请求。


因为我的程序集中引用了System.Web.dll,所以报错,于是先去注册这个dll

CREATE ASSEMBLY [System.Web] FROM 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Web.dll' WITH PERMISSION_SET = UNSAFE



运行结果:

警告: 您正在注册的 Microsoft .NET Framework 程序集 'system.web, version=2.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=x86.' 未在 SQL Server 宿主环境中充分测试,不受支持。如果您将来升级或维护此程序集或 .NET Framework,您的 CLR 集成例程可能会停止工作。请参阅 SQL Server 联机丛书了解更多详细信息。
警告: 您正在注册的 Microsoft .NET Framework 程序集 'system.drawing, version=2.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=msil.' 未在 SQL Server 宿主环境中充分测试,不受支持。如果您将来升级或维护此程序集或 .NET Framework,您的 CLR 集成例程可能会停止工作。请参阅 SQL Server 联机丛书了解更多详细信息。
警告: 您正在注册的 Microsoft .NET Framework 程序集 'system.directoryservices, version=2.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=msil.' 未在 SQL Server 宿主环境中充分测试,不受支持。如果您将来升级或维护此程序集或 .NET Framework,您的 CLR 集成例程可能会停止工作。请参阅 SQL Server 联机丛书了解更多详细信息。
警告: 您正在注册的 Microsoft .NET Framework 程序集 'system.directoryservices.protocols, version=2.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=msil.' 未在 SQL Server 宿主环境中充分测试,不受支持。如果您将来升级或维护此程序集或 .NET Framework,您的 CLR 集成例程可能会停止工作。请参阅 SQL Server 联机丛书了解更多详细信息。
警告: 您正在注册的 Microsoft .NET Framework 程序集 'system.enterpriseservices, version=2.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=x86.' 未在 SQL Server 宿主环境中充分测试,不受支持。如果您将来升级或维护此程序集或 .NET Framework,您的 CLR 集成例程可能会停止工作。请参阅 SQL Server 联机丛书了解更多详细信息。
警告: 您正在注册的 Microsoft .NET Framework 程序集 'system.runtime.remoting, version=2.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089, processorarchitecture=msil.' 未在 SQL Server 宿主环境中充分测试,不受支持。如果您将来升级或维护此程序集或 .NET Framework,您的 CLR 集成例程可能会停止工作。请参阅 SQL Server 联机丛书了解更多详细信息。
消息 10300,级别 16,状态 2,第 1 行
程序集 'System.Web' 所引用的程序集 'system.web, version=2.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a.' 不在当前数据库中。SQL Server 已尝试定位并自动从引用程序集所在的位置自动加载被引用程序集,但此操作失败(原因: 版本、区域性或公钥不匹配)。请将被引用程序集加载到当前数据库中,然后重试您的请求。


如果我编译的程序集没有引用别的dll,是可以注册成功的,请教大神为什么注册System.Web.dll会出现这个错误呢,如何解决?
...全文
689 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
子雅风然 2019-04-13
  • 打赏
  • 举报
回复
注册system.Web.dll的路径怎么改为Framework64的
龟叔啊 2018-08-28
  • 打赏
  • 举报
回复
最近发帖怎么都沉了,
圣殿骑士18 2018-08-26
  • 打赏
  • 举报
回复
猜测,
要注册到Framework64,是因为你的R2是64位的。
龟叔啊 2018-08-25
  • 打赏
  • 举报
回复
这引申出一个问题,为什么我编译的程序要引用32位的Sysetm.Web.dll而不是64位的呢?
龟叔啊 2018-08-25
  • 打赏
  • 举报
回复
我去!注册system.Web.dll的路径改为Framework64的就可以,难道有什么冲突?
龟叔啊 2018-08-25
  • 打赏
  • 举报
回复
尝试修改安全级别

CREATE ASSEMBLY [System.Web] FROM 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Web.dll' WITH PERMISSION_SET = EXTERNAL_ACCESS

运行结果


警告: 您正在注册的 Microsoft .NET Framework 程序集 'system.web, version=2.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=x86.' 未在 SQL Server 宿主环境中充分测试,不受支持。如果您将来升级或维护此程序集或 .NET Framework,您的 CLR 集成例程可能会停止工作。请参阅 SQL Server 联机丛书了解更多详细信息。
警告: 您正在注册的 Microsoft .NET Framework 程序集 'system.drawing, version=2.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=msil.' 未在 SQL Server 宿主环境中充分测试,不受支持。如果您将来升级或维护此程序集或 .NET Framework,您的 CLR 集成例程可能会停止工作。请参阅 SQL Server 联机丛书了解更多详细信息。
消息 6218,级别 16,状态 2,第 1 行
针对程序集 'System.Web' 的 CREATE ASSEMBLY 失败,原因是程序集 'System.Drawing' 未通过身份验证。请检查被引用程序集是否是最新的,而且是可信的(external_access 或 unsafe),能在该数据库中执行。如果有 CLR Verifier 错误消息,将显示在此消息之后
[ : System.Drawing.BufferedGraphicsContext::bFillColorTable][mdToken=0x6000249][偏移量 0x00000053][找到 address of Byte] 堆栈上需要 Numeric 类型。
[ : System.Drawing.BufferedGraphicsContext::bFillColorTable][mdToken=0x6000249][偏移量 0x00000043][找到 Native Int][应为 address of Byte] 堆栈上意外的类型。
[ : System.Drawing.BufferedGraphicsContext::bFillColorTable][mdToken=0x6000249][偏移量 0x00000027][找到 Native Int][应为 address of Byte] 堆栈上意外的类型。
[ : System.Drawing.Icon::GetShort][mdToken=0x6000465][偏移量 0x00000002] 非托管指针不是可验证的类型。
[ : System.Drawing.Icon::GetInt][mdToken=0x6000466][偏移量 0x00000002] 非托管指针不是可验证的类型。
[ : System.Drawing.Icon::Initialize][mdToken=0x6000467][偏移量 0x0000011F][找到 address of Byte] 堆栈上需要 Numeric 类型。
[ : System.Drawing.Icon::Initialize][mdToken=0x6000467][偏移量 0x00000111][找到 Native Int][应为 address of Byte] 堆栈上意外的类型。
[ : System.Drawing.Icon::ToBitmap][mdToken=0x600046b][偏移量 0x00000084][找到 unmanaged pointer][应为 unmanaged pointer] 堆栈上意外的类型。
[ : System.Drawing.Icon::ToBitmap][mdToken=0x600046b][偏移量 0x000000E4] 非托管指针不是可验证的类型。
[ : System.Drawing.Icon::BitmapHasAlpha][mdToken=0x600046a][偏移量 0x00000022][找到 unmanaged pointer] 堆栈上需要 Numeric 类型。
[ : System.Drawing.ImageConverter::GetBitmapStream][mdToken=0x600048d][偏移量 0x0000011C][找到 Native Int][应为 address of Byte] 堆栈上意外的类型。
[ : System.Drawing.ImageConverter::GetBitmapStream][mdToken=0x600048d][偏移量 0x0000001B][找到 address of Byte] 堆栈上需要 Numeric 类型。
[ : System.Drawing.ImageConverter::GetBitmapStream][mdToken=0x600048d][偏移量 0x0000000E][找到 Native Int][应为 address of Byte] 堆栈上意外的类型。
[ : System.Drawing.Imaging.EncoderParameter::.ctor][mdToken=0x60007a1][偏移量 0x00000069][找到 unmanaged pointer][应为 unmanaged pointer] 堆栈上意外的类型。
[ : System.Drawing.Imaging.EncoderParameter::.ctor][mdToken=0x60007a1][偏移量 0x00000088] 非托管指针不是可验证的类型。
[ : System.Drawing.Imaging.EncoderParameter::.ctor][mdToken=0x60007a1][偏移量 0x000000A4][找到 Native...

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧