在本地和测试调用时,都OK,调用方法是“Call+soap服务的方法名”,
比如soap服务为soapServer,方法为AddRecord()则在web引用后会有方法叫CallAddRecord();
但是部署到正式服务器上后就变成了Operation 'CallAddRecord' is not defined in the WSDL for this service 

解决方案 »

  1.   

    看看WEBSERVICE 引用时添加的几个配置文件里的地址对否? 
      

  2.   

    这个Call是你自己添加上去的吗?我记得vs生成的代理类中的函数名字是和webmethod的名字一样的啊。
    像我的webmethod在wsdl中是
    <wsdl:operation name="WDC_GenerateTrueview">
          <soap:operation soapAction="http://www.wilcom.com.au/WilcomDesignCreationService/2008/September/WDC_GenerateTrueview" style="document" />
          <wsdl:input>
            <soap:body use="literal" />
          </wsdl:input>
          <wsdl:output>
            <soap:body use="literal" />
          </wsdl:output>
        </wsdl:operation>在vs生成的代理类中是
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.wilcom.com.au/WilcomDesignCreationService/2008/September/WDC_GenerateT" +
                "rueview", RequestNamespace="http://www.wilcom.com.au/WilcomDesignCreationService/2008/September/", ResponseNamespace="http://www.wilcom.com.au/WilcomDesignCreationService/2008/September/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
            public string WDC_GenerateTrueview(string requestXml) {
                object[] results = this.Invoke("WDC_GenerateTrueview", new object[] {
                            requestXml});
                return ((string)(results[0]));
            }
      

  3.   

    添加webservice后,会自动生成代理类,你调用的时候,就像调用本地类一样!