C# 托管指针,不允许使用非托管指针
有关权限集的定义,请参阅。blacai这方面运气好吗?我目前面临同样的问题,因为我无法测试提供的解决方案。如果你能确认它的工作,我将标记为answer@blacai我可以确认David Manning的回答是正确的:这只是使用C# 托管指针,不允许使用非托管指针,c#,clr,.net-assembly,sqlclr,C#,Clr,.net Assembly,Sqlclr,有关权限集的定义,请参阅。blacai这方面运气好吗?我目前面临同样的问题,因为我无法测试提供的解决方案。如果你能确认它的工作,我将标记为answer@blacai我可以确认David Manning的回答是正确的:这只是使用不安全的权限集而不是安全的问题。可以肯定的是,我正在运行SQL Server 2012,从上面复制了您的创建程序集代码,运行了它,得到了错误,将SAFE更改为SAFE,再次运行,它就工作了。这是一个版本控制问题。使用everything.exe,我搜索了所有system.s
不安全的权限集而不是安全的问题。可以肯定的是,我正在运行SQL Server 2012,从上面复制了您的创建程序集代码,运行了它,得到了错误,将SAFE
更改为SAFE
,再次运行,它就工作了。这是一个版本控制问题。使用everything.exe,我搜索了所有system.servicemodel.internals.dll,然后选择了与sql server clr版本匹配的dll,是的,它必须标记为不安全。
create assembly [system.servicemodel.internals]
from 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.ServiceModel.Internals.dll'
with permission_set = safe;
go
directory C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
version v4.0.30319
state CLR is initialized
[found ref 'System.String'] Expected numeric type on the stack