Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7319117
  • 博文数量: 444
  • 博客积分: 10593
  • 博客等级: 上将
  • 技术积分: 3852
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-09 15:26
文章分类

全部博文(444)

文章存档

2014年(1)

2013年(10)

2012年(18)

2011年(35)

2010年(125)

2009年(108)

2008年(52)

2007年(72)

2006年(23)

分类: 数据库开发技术

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 属性

或者改变89步骤的设置权限

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

 

参考文章:

=

阅读(5471) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~