<SCRIPT language="JavaScript">
var iCallID,icall;function init()
{
   service.useService("http://192.168.0.1/Project2.dll/Iadd?wsdl","Myadd");???
iCallID = service.Myadd.callService("add",1,2);???
}function onWSresult()
{  
    if((event.result.error)&&(iCallID==event.result.id))  
{    
    var xfaultcode   = event.result.errorDetail.code;
    var xfaultstring = event.result.errorDetail.string;    
    var xfaultsoap   = event.result.errorDetail.raw;
    document.writeln("ERROR. Method call failed!");
    document.writeln("Call ID:" + iCallID);
    document.writeln("Fault Code:" + xfaultcode);
    document.writeln("Fault String:" + xfaultstring);
    document.writeln("SOAP Data:" + xfaultsoap);
}
else if(event.result.error == false)
{
    document.writeln("Result received without errors!");
            alert(event.result.value);
}
}
</script>
<body onload="init()">
<div id="service" style="behavior:url(webservice.htc)" onresult="onWSresult()">
</div>
</body>

解决方案 »

  1.   

    是从msdn上下的组件,和以上在同一个目录中
      

  2.   

    首先得看看webservice.htc的定义才知道问题在哪儿..
      

  3.   

    <div id="service" style="behavior:url(webservice.htc)" onresult="alert('');onWSresult()">
    </div>
    试试看,看是否触发了onresult事件,如果没有,说明行为绑定不成功.
      

  4.   

    我感觉
    function init()
    {
       service.useService("http://192.168.0.1/Project2.dll/Iadd?wsdl","Myadd");???
    iCallID = service.Myadd.callService("add",1,2);???
    }
    这个有点问题http://192.168.0.1/Project2.dll/Iadd?wsdl这种方式的调用是否存在验证或虚拟目录执行权限的问题因为指定绝对url并包含一个非本地地址,可能需要附加的验证或集成的验证..
      

  5.   

    在webservice的机器上将虚拟目录设置为可执行,并去掉验证,允许匿名访问
    (如果webservice在调用者机器上那么使用/Project2.dll/Iadd?wsdl路径调用)
      

  6.   

    ERROR. Method call failed! Call ID:0 Fault Code:Client Fault String:Service unavailable SOAP Data:null
    提示如上
      

  7.   

    <SCRIPT language="JavaScript">
    var iCallID;function init()
    {
       service.useService("http://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl","MyResolveIP");
    iCallID = service.MyResolveIP.callService("ResolveIP","202.204.59.204");
    }function onWSresult()
    {  
        if((event.result.error)&&(iCallID==event.result.id))  
    {    
        var xfaultcode   = event.result.errorDetail.code;
        var xfaultstring = event.result.errorDetail.string;    
        var xfaultsoap   = event.result.errorDetail.raw;
        document.writeln("ERROR. Method call failed!");
        document.writeln("Call ID:" + iCallID);
        document.writeln("Fault Code:" + xfaultcode);
        document.writeln("Fault String:" + xfaultstring);
        document.writeln("SOAP Data:" + xfaultsoap);
    }
    else if(event.result.error == false)
    {
        document.writeln("Result received without errors!");
                alert(event.result.value);
    }
    }
    </script>
    这个运行没问题!
      

  8.   

    function init()
    {
       service.useService("http://192.168.0.1/Project2.dll/Iadd?wsdl","Myadd");???
    iCallID = service.Myadd.callService("add",1,2);???
    }http://192.168.0.1/Project2.dll/Iadd?wsdl这个可以访问吗?
      

  9.   

    是不是IIS的问题,因为没有返回任何合法数据
      

  10.   

    使用soaptoolkit中的MSSOAP.SoapClient//建立对象
    var tmp = new ActiveXObject("MSSOAP.SOAPClient");
    //读取WSDL
    tmp.mssoapinit("http://192.1.1.129/MyService/Service1.asmx?WSDL");
    //调用WEB SERVICE方法
    tmp.AddData(username.value, password.value, data.value);