(sqlServer 2008 + VS2010)

首先,对服务器进行配置。

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO

然后实现SQL调用WebService接口,代码如下:

DECLARE @ServiceUrl AS NVARCHAR(1000)
DECLARE @UrlAddress VARCHAR(500)
--------WebService地址:以http开头,结尾带斜杠,
--例如'http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx/'
SET @UrlAddress ='--地址--' DECLARE @FunName VARCHAR(50)
--- WebService中调用的方法名:例如‘HelloWorld’
SET @FunName='Add' --- 以下参数对应WebService中参数的[参数名]
DECLARE @p1 VARCHAR(800),@p2 VARCHAR(100),@p3 VARCHAR(100)
SET @p1='a'
SET @p2='b'
SET @p3='c'
--- 以下参数对应WebService中参数的[参数值]
DECLARE @p1_Value VARCHAR(100),@p2_Value VARCHAR(100),@p3_Value VARCHAR(100)
SET @p1_Value = '1'
SET @p2_Value = '2'
SET @p3_Value = '3' SET @ServiceUrl=@UrlAddress+@FunName+'?'
+@p1+'='+@p1_Value+'&'+@p2+'='+@p2_Value+'&'+@p3+'='+@p3_Value --- 创建 OLE 对象的实例。
--- 返回的对象令牌必须是数据类型为 int 的局部变量。 该对象令牌用于标识所创建的 OLE 对象,并用于调用其他 OLE 自动化存储过程。
DECLARE @Object AS INT
DECLARE @ResponseText AS VARCHAR(8000) EXEC sys.sp_OACreate 'MSXML2.XMLHTTP',@Object OUT;
EXEC sys.sp_OAMethod @Object,'open',NULL,'get',@ServiceUrl,'false'
EXEC sys.sp_OAMethod @Object,'send'
EXEC sys.sp_OAMethod @Object,'responseText',@ResponseText OUTPUT SELECT @ResponseText --- 当不再需要该对象时,调用 sp_OADestroy 释放使用 sp_OACreate 创建的对象实例。
EXEC sys.sp_OADestroy @Object GO

此上可参见:https://www.cnblogs.com/davidhou/p/5868136.html

本例中使用的WebService方法 Add:

[WebMethod(Description = "Add —— 测试方法")]
public int Add(int a, int b, int c)
{
return a + b + c;
}

调用时遇到的问题:在SQL中报错:请求格式无法识别。

解决方法:在Web.config System.Web节点下添加如下内容

<webServices>
<protocols>
<add name="HttpPost"/>
<add name="HttpGet"/>
</protocols>
</webServices>

SQLServer调WebService & 错误解决:请求格式无法识别的更多相关文章

  1. .asmx支持post请求或者get请求调用(WebService "因 URL 意外地以 结束,请求格式无法识别" 的解决方法)

    使用Post调用以asmx形式提供的webservice时,在本机调试没有调用问题.一旦部署至服务器后会提示如下信息: <html> <head> <title>因 ...

  2. WebService 通过POST方式访问时候,因 URL 意外地以“/方法名”结束,请求格式无法识别 解决办法

    因URL意外地以“/方法名”结束,请求格式无法识别. 执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息. 解决方法:在webservice的we ...

  3. ASP.NET WebServices 因 URL 意外地以“/HelloWorld”结束,请求格式无法识别。

    今天在使用Asp.net做一个WebServices时通过Get方式调用方法时却出现了以下错误(仅在Get请求下,POST下正常)   在网络和MSDN上了解到WebServices默认只启用 Htt ...

  4. WebService "因 URL 意外地以 结束,请求格式无法识别" 的解决方法

    最近在做一个图片上传的功能,js调用用webservice进行异步访问服务器,对于不是经常用webservice的菜鸟来说,经常会遇到以下的问题(起码我是遇到了) 在页面上写了js调用代码如下所示: ...

  5. WebService 出现因 URL 意外地以“/HelloWorld”结束,请求格式无法识别。

    要在webservice的web.config文件中的 <system.web> 节点下加入: <webServices>    <protocols>       ...

  6. 因 URL 意外地以“/HelloWorld”结束,请求格式无法识别。

    WebService中发布之后出现这个错误, 解决方法: web.config文件中的 <system.web> 节点下加入:<webServices>    <prot ...

  7. 因 URL 意外地以“/HelloWorld”结束,请求格式无法识别

    http://www.cnblogs.com/AngelLee2009/p/3540527.html

  8. 因 URL 意外地以“/HelloWorld”结束,请求格式无法识别。

    web.config文件中的 <system.web> 节点下加入:<webServices>    <protocols>        <add name ...

  9. nginx解决超长请求串(413 request Entity too Large错误解决办法)

    <div class="hide-article-box text-center" style="display: block;"> <a c ...

随机推荐

  1. 实体关系图应用——google ads

    实体关系 本页展示了 AdWords 实体的关系图,其中的可点击图片可帮助您找到最合适的文档. 表示法图例 实体:链接到相关性最高的指南. 基数:允许的实例数量.例如,1..\* 表示允许一个或多个. ...

  2. 在 Linux 上使用 VirtualBox 的命令行管理界面

    VirtualBox 拥有一套命令行工具,你可以使用 VirtualBox 的命令行界面 (CLI) 对远程无界面的服务器上的虚拟机进行管理操作.在这篇教程中,你将会学到如何在没有 GUI 的情况下使 ...

  3. windows 添加开始菜单

    C:\Users\用户名(为你设置的电脑名称)\AppData\Roaming\Microsoft\Windows\Start Menu C:\ProgramData\Microsoft\Window ...

  4. CookieHelper

    using System.Web: /// <summary> /// CookieHelper /// </summary> public static class Cook ...

  5. (免费电影)苹果手机合并.ts视频

    代码教程:https://mp.weixin.qq.com/s/6Oo8TOruePUxotC11zp0ag

  6. Rancher2.0中部署Longhorn分布式存储实验

    目录 1.简介 2.实验环境 3.应用商店中部署longhorn 4.创建工作负载,使用longhorn存储 5.查看longhorn UI 6.注意事项 1.简介: Longhorn是Rancher ...

  7. 使用Rancher和私有仓库快速搭建Kubernetes集群

    来来来,先出题:Rancher可以快速部署Kubernetes,但其使用的gcr.io上的镜像无法下载怎么办?使用Rancher可以快速部署Kubernetes,但我们需要下载哪些镜像?Rancher ...

  8. 谈谈如何给下拉框option添加点击事件?

    我们在用到下拉列表框select时,需要对选中的<option>选项触发事件,其实<option>本身没有触发事件方法,我们只有在select里的onchange方法里触发. ...

  9. 了解多层交换中的CEF FIB CAM TCAM

    来源:http://blog.51cto.com/redant/314151 多层交换是指交换机使用硬件来交换和路由数据包,通过硬件来支持4-7层的交换.交换机执行硬件交换,第3层引擎(路由处理器)须 ...

  10. python学习(九)