【问题标题】:Enabling CLR still doesn't allow me to run code on sql server启用 CLR 仍然不允许我在 sql server 上运行代码
【发布时间】:2016-05-11 08:05:03
【问题描述】:

我正在使用以下命令尝试在 SQL Server 2008 实例上启用 CLR

EXEC sp_configure 'clr enabled', 1
GO

RECONFIGURE
GO

但我仍然收到以下错误

.NET Framework 代码的执行被禁用。设置“启用 clr” 配置选项并重启服务器

我还需要做什么吗?

【问题讨论】:

  • “重启服务器”。您的服务器是 32 位服务器吗?
  • 是的,我试过了,但还是没有骰子
  • 那你做错了。仅此而已。
  • 它在失败时尝试这样做:- CREATE ASSEMBLY [FileObject]
  • 轻量池未启用

标签: c# sql-server sql-server-2008 sqlclr


【解决方案1】:

查看到目前为止已检查和尝试的内容:

  1. EXEC sp_configure 'clr enabled', 1;已被执行。

  2. RECONFIGURE;已被执行。

  3. 服务器已重新启动。这应该只是 必需在 WOW64 服务器上。

  4. 运行EXEC sp_configure 'clr enabled'; 会为run_value 显示1

  5. 运行EXEC sp_configure 'lightweight pooling'; 会为run_value 显示0

  6. sys.dm_clr_properties 中的state 属性的值为“Locked CLR version with mscoree”,意思是:

    Locked CLR version with mscoree 状态可能出现在未使用托管 CLR 的地方,因此它尚未初始化。托管 CLR 在第一次执行 DDL 语句(例如 CREATE ASSEMBLY (Transact-SQL))或托管数据库对象时被初始化。

要尝试/检查的其他事项:

  1. 确保已安装 .NET Framework 2.0 和 3.5 SP1
  2. 确保已通过 Windows 更新应用 .NET Framework 补丁
  3. 可能确保在控制面板\程序\程序和功能中安装了“Microsoft SQL Server System CLR Types”
  4. 检查您的身份验证类型。如果设置为“两者”,请尝试更改为“仅限 Windows”,重新启动 SQL Server 服务,看看是否有帮助。不是一个好的长期解决方案,但可能指向一个方向。
  5. MSSQLSERVER 服务以什么帐户登录?有一些报告称“网络服务”或“NT AUTHORITY\网络服务”可能存在问题,并且可能首选本地系统帐户。
  6. ??

【讨论】:

  • 我放弃了。这对这个服务器来说不是必需的,它占用了我太多的时间。无论如何感谢您的帮助
  • 安装 .Net 2.0 和 3.5 为我解决了这个问题 - 谢谢!
  • @KevinPope 很高兴这个信息有帮助!感谢您发布对您有用的内容,以帮助缩小范围:-)
【解决方案2】:

试试

EXEC sp_configure 'clr enabled', 1
go
 RECONFIGURE
go
EXEC sp_configure 'clr enabled'
go

还有

要启用 CLR 集成,您必须具有 ALTER SETTINGS 服务器级别权限,该权限由 sysadmin 和 serveradmin 固定服务器角色的成员隐式持有。

【讨论】:

    【解决方案3】:

    您确定启用了高级选项吗?

    sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    sp_configure 'clr enabled', 1;
    GO
    RECONFIGURE;
    GO
    

    【讨论】:

    • 是的,我启用了高级选项
    • 您的程序集 .NET CLR 版本是什么?是否与以下结果相同:select * from sys.dm_clr_properties
    • 启用 CLR 不是高级选项。
    • 我刚刚得到了一些我的旧代码,它就在那里。我现在查了一下,在 MSDN 上也有这样的描述:msdn.microsoft.com/pl-pl/library/ms131048(v=sql.100).aspx。最后,我现在也仔细检查了,我可以在不启用高级选项的情况下执行它,这证明你是对的,它不需要。
    • 另一个问题是,它在什么帐户上运行?如果它是网络服务,也许你可以尝试将其更改为“本地系统”,看看是否相同
    猜你喜欢
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    • 2017-01-23
    • 2014-07-01
    • 1970-01-01
    • 2020-10-30
    • 2021-12-30
    • 2020-09-03
    相关资源
    最近更新 更多