SQL SERVER调用WebService
1.新建xml内容如下(C#)
c#language>
Soapprotocol>
truenologo>
falsesharetypes>
properties oldAsynccodeGenerationOptions>
webReferenceOptions>
wsdlParameters>
2.运行:C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\wsdl.exe /par:上述XML路径要调用的Webserives地址
如:
3.建立解决方案:
4.添加导入引用第二步生成的文件
5.添加
6.添加函数(触发器等)
7.在函数主体写入要执行的方法,该方法将被触发器调用。
8.将解决方案生成属性----数据库权限级别设置为外部等
9.将生成---生成序列化程序集设置为开
10.安装部署【项目右键进行部署】程序集:
以下要注意:如果部署不成功,请设置你调用的数据库的ALTER DATABASE数据库名SET TRUSTWORTHY ON属性
或者改变8,9步骤的设置权限
11.右键点击SQL management studio中对象资源管理器中“程序集”文件夹,选择“新建程序集*.XmlSerializers.dll.
当报错:System.InvalidOperationException: Cannot load dynamically generated serialization assembly. In some hosting environments assembly load functionality is restricted, consider using pre-generated serializer. Please see inner exception for more information. ---> System.IO.FileLoadException: LoadFrom(), LoadFile(), Load(byte[]) and LoadModule() have been disabled by the host.
原因是少部署了一个DLL。当我们查看VS项目的BIN目录,会发现生成了两个DLL文件:WebServiceConsume.dll和WebServiceConsume.XmlSerializers.dll.后面一个DLL用来在WEB SERVICE调用时候进行序列化和反序列化,它没有被自动部署到SQL SERVER数据库中。我们需要进行手工部署:右键点击SQL management studio中对象资源管理器中“程序集”文件夹,选择“新建程序集”…
12调用上述所建函数:
如报错,试着运行
如禁止在.NET Framework中执行用户代码。启用"clr enabled"配置选项
,试着运行
--exec sp_configure 'show advanced options', '1';
--go
--reconfigure;
--go
--exec sp_configure 'clr enabled', '1'
--go
--reconfigure;
--exec sp_configure 'show advanced options', '1';
--go
参考文章:
=