oracle触发器调用webservice,SQL SERVER 调用 WebService

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地址

如:

100717182258.jpg

3.建立解决方案:100717182332.jpg

4.添加导入引用第二步生成的文件

5.添加

100717182425.jpg

100717182451.jpg

6.添加函数(触发器等)100717182520.jpg

7.在函数主体写入要执行的方法,该方法将被触发器调用。

100717182554.jpg

8.将解决方案生成属性----数据库权限级别设置为外部等

100717182626.jpg

9.将生成---生成序列化程序集设置为开

100717182658.jpg

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调用上述所建函数:

100717182850.jpg

如报错,试着运行

如禁止在.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

参考文章:

=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值