分类: 数据库开发技术
2010-07-17 18:27:11
SQL SERVER 调用 WebService
1.新建 xml 内容如下(C#)
<wsdlParameters xmlns=''>
<language>c#language>
<protocol>Soapprotocol>
<nologo>truenologo>
<sharetypes>falsesharetypes>
<webReferenceOptions>
<codeGenerationOptions>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
参考文章:
=