一个离开.NET的程序员

ryhan

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

MSSOAP是个好东西呀,用它来调用WebService真是很便利!
MSSOAP全称应当是Microsoft Soap Toolkit,2001年,已经出到2.0的版本了,但我一直没接触过,失败呀!
.NET Frameword成熟后,貌似微软已经抛弃了Soap Toolkit,官方网页上的原话是:
The Microsoft SOAP Toolkit is deprecated by the .NET Framework. The toolkit provides basic Web services capabilities for COM components and applications. SOAP Toolkit support will be retired on July 1, 2004.
但好象现在使用实际上还是很广泛,我机器上就带有这么个东西,不知是装什么时附带装上去的,最后版本应当是3.0,网上到处都有独立安装包可下载。
官方下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=C943C0DD-CEEC-4088-9753-86F052EC8450&displaylang=en

Microsoft Soap Toolkit 2.0的介绍:
提供了一整套的COM对象来处理与SOAP相关的所有数据,可以让你在不了解SOAP和XML的情况下(当然最好还是了解的啦),也可以很容易和方便的使用任何一种编程语言来编写SOAP应用。你看到的,就是一个个的COM对象(符合微软的风格,符合一般程序员的编程习惯)。
功能简介:
1.提供了客户端的组件,可以让你指定WSDL,然后轻松调用对应的Web Service。
2.提供了服务端的组件,可以让你指定WSDL、WSML和COM对象,自动为你生成Web Service。
3.还提供了底层的处理组件,可以让你操纵SOAP消息的具体创建、处理和传输的过程。

MSSOAP的相关资料:
Microsoft SOAP Toolkit 2.0介绍:http://www.chinaaspx.com/archive/dotnet/6331.htm
Microsoft SOAP Toolkit v2_0 常见问题解答:http://msdn2.microsoft.com/zh-cn/library/ms995780.aspx
SOAP Toolkit:http://msdn2.microsoft.com/en-us/library/aa286526.aspx


罗嗦了一些基本概念,言归正传,其实我们没必要了解太多,因为这毕竟是一个已经不被推荐的技术。我在本文中想介绍的是其提供的客户端组件,通过它来动态调用WebService,实现非常简单,而且可以用在多种环境中。

•要调用WebService代码,非常简单的一个WebService方法:
[WebMethod]
public string SimpleTest(string strInput)
...{
    return "Hello World: " + strInput;
}•在C#里调用:
string WsdlUrl = "http://localhost/WebServiceTest/Service1.asmx?wsdl";
//Type objType = Type.GetTypeFromProgID("MSOSOAP.SoapClient30");
Type objType = Type.GetTypeFromProgID("MSSOAP.SoapClient");
object obj = Activator.CreateInstance(objType);
objType.InvokeMember("MSSoapInit", BindingFlags.InvokeMethod, null, obj, new object[] ...{ WsdlUrl });
object objResult = objType.InvokeMember("SimpleTest", BindingFlags.InvokeMethod, null, obj, new object[] ...{ "C# Invoke" });
if (objResult != null) Response.Write(objResult.ToString());•在ASP里调用:
SET TestClient = Server.CreateObject("MSSOAP.SoapClient")
'在ASP中运行,需要设置ServerHTTPRequest选项
TestClient.ClientProperty("ServerHTTPRequest") = True    
TestClient.mssoapinit "http://localhost/WebServiceTest/Service1.asmx?wsdl"
Response.Write TestClient.SimpleTest("ASP Invode")•在vbs里调用:
SET TestClient = CreateObject("MSSOAP.SOAPClient")
TestClient.mssoapinit "http://localhost/WebServiceTest/Service1.asmx?wsdl"
WScript.Echo TestClient.SimpleTest("vbs Invoke")•在JS里调用:
var TestClient = new ActiveXObject("MSSOAP.SoapClient");
TestClient.mssoapinit("http://localhost/WebServiceTest/Service1.asmx?wsdl");
alert(TestClient.SimpleTest("JavaScript Invoke"));[注]运行JS时如果报错:automation服务器不能创建对象,解决办法:IE的安全设置>“对没有标记为安全的ActiveX控件进行初始化和脚本运行”这一项设置为“启用”
[附]Javascript+xmlhttp调用Webservice的方式:http://netboy.cnblogs.com/archive/2006/02/18/333260.html


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/XX0054/archive/2008/04/24/2325444.aspx

posted on 2011-05-03 19:16  ryhan  阅读(2448)  评论(0编辑  收藏  举报