2

我为 sql server 2005 编写了一个 CLR 方法并试图通过它运行一个 exe。

这是代码:

[Microsoft.SqlServer.Server.SqlFunction]
    public static SqlString Function1()
    {
        System.Diagnostics.Process.Start("notepad.exe");
        return new SqlString("Some string ");
    }

部署后,当我尝试在 sql server 2005 中运行此 CLR 方法时,它给了我以下错误:

 Msg 6522, Level 16, State 2, Line 1
    A .NET Framework error occurred during execution of user defined routine or aggregate 'Function1': 
    System.Security.SecurityException: Request failed.
    System.Security.SecurityException: 
       at UserDefinedFunctions.Function1()



是否可以运行这样的exe?

4

1 回答 1

0

我知道这个帖子太晚了,但万一其他人遇到这个,这就是我找到的答案:

我尝试的第一件事是 CLR 方法(设置公共语言运行时)= true,但这并没有解决问题。阅读更多内容并仔细查看错误,我意识到 SQL 无法访问机器上的某些注册表信息,因为运行 SQL 服务器的 ID 无权访问密钥库。

所以我将我的用户添加到管理员组并修复了它。花了三个小时才弄清楚这一点,所以希望这会在将来节省一些时间。

于 2014-02-14T15:07:40.777 回答