从SQL CLR存储过程调用WCF服务

时间:2010-08-17 12:25:58

标签: sql web-services permissions clrstoredprocedure

我创建了一个SQL CLR存储过程,它将调用WCF服务。我已设法将所有正确的DLL加载到SQL Server中以使其工作,但我现在有以下错误消息:

System.Configuration.ConfigurationErrorsException:为system.serviceModel / extensions创建配置节处理程序时发生错误:无法加载文件或程序集'System.IdentityModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'或其中一个依赖项。主机存储中的程序集与GAC中的程序集具有不同的签名。 (来自HRESULT的异常:0x80131050)(C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Config \ machine.config第185行) System.Configuration.ConfigurationErrorsException:    at System.Configuration.BaseConfigurationRecord.EvaluateOne(String [] keys,SectionInput input,Boolean isTrusted,FactoryRecord factoryRecord,SectionRecord sectionRecord,Object parentResult)    at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord,SectionRecord sectionRecord,Object parentResult,Boolean getLkg,Boolean getRuntimeObject,Object& result,Object& resultRuntimeObject)    at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey,Boolean getLkg,Boolean checkPermission,Boolean getRuntimeObject,Boolean requestIsHere,Object& result,Object& resultRuntimeObject)    at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey,Boolean getLkg,Boolean checkPermission,Boolean getRuntimeObject,Boolean requestIsHere,Object& result,Object& resultRuntimeObject)    at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey,Boolean getLkg,Boolean checkPermission,Boolean getRuntimeObject,Boolean requestIsHere,Object& result,Object& resultRuntimeObject)    at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey,Boolean getLkg,Boolean checkPermission,Boolean getRuntimeObject,Boolean requestIsHere,Object& result,Object& resultRuntimeObject)    在System.Configuration.BaseConfigurationRecord.GetSection(String ...

我在网上发现了这个帖子,但我不知道如何更新GAC或者它是否真正解决了问题:(Invoking a WCF Service from a CLR Trigger

1 个答案:

答案 0 :(得分:1)

请看Niels Berglund的博文:http://nielsb.wordpress.com/sqlclrwcf/您可以从machine.config文件中删除违规行,或者使用vsdiag_regwcf.exe -u禁用计算机上WCF的调试。一旦更改.config文件,就必须重新启动SQL,以便重新启动应用程序域。