在Sql Server 2005的CLR方法中运行exe

时间:2012-07-29 12:22:43

标签: sql-server-2005 clr

我为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?

1 个答案:

答案 0 :(得分:0)

我知道这个帖子已经太晚了,但是如果其他人遇到这个问题,这就是我找到的答案:

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

所以我将我的用户添加到管理员组并修复了它。花了三个小时来解决这个问题,所以希望这将节省一些时间。