代码之家  ›  专栏  ›  技术社区  ›  Nick Bolton

为什么我不能在SQL Server 2008中注册System.Web?

  •  5
  • Nick Bolton  · 技术社区  · 15 年前

    CREATE ASSEMBLY 
    [System.Web] from
    'C:\Windows\Microsoft.NET\Framework\v2.0.50727\system.web.dll'
    with permission_set = UNSAFE
    

    给我这个错误:

    消息10300,级别16,状态2,行1

    程序集“System.Web”引用当前数据库中不存在的程序集“System.Web,version=2.0.0.0,culture=neutral,publickeytoken=b03f5f7f11d50a3a.”。SQL Server试图从引用程序集所来自的同一位置定位并自动加载引用的程序集,但该操作失败(原因:版本、区域性或公钥不匹配)。请将引用的程序集加载到当前数据库中,然后重试您的请求。

    ... 听起来有点傻。似乎SQL Server认为System.Web程序集引用的是它自己。我该怎么解决?

    3 回复  |  直到 15 年前
        1
  •  7
  •   Mahesh    13 年前

    尝试使用Framework64程序集(64位sql server 2008)

    创建程序集

    'C:\ Windows\Microsoft.NET\Framework64\v2.0.50727\System.Web.dll' 具有权限集=不安全

        2
  •  0
  •   Richard    14 年前

    听起来您需要在数据库服务器上安装.NET2.0框架。

    另外,我不会直接添加对System.Web.dll的引用。您的其他自定义CLR代码应该引用它。(或者,如果没有自定义.Net代码,则应创建自定义.Net项目以与System.Web程序集进行交互。)

        3
  •  0
  •   Nick Bolton    14 年前

    结果表明,此操作不支持System.web.dll。事实上,在许多级别(其中一个级别是部署之间的64/32位支持)上,像这样将dll加载到SQL Server(对于CLR)是一个坏主意。