问题描述
我自己拿txt写了个wsdl文件,然后我的.asmx文件因为如下:[WebService(Namespace="http://tempuri.org/")][WebServiceBinding(Name="ChildQueryPort",Location="ChildQueryService.wsdl")]publicclassService1:System.Web.Services.WebService{[WebMethod][SoapDocumentMethod(Action="http://tempuri.org/queryChildrenByCodes",Binding="ChildQueryPortBinding")]publicStringqueryChildrenByCodes(Stringuser,Stringpassword,string[]codes){//业务处理(主要是查询数据库)}}我把我写的wsdl文件引入项目放到和.asmx同一个目录,然后在浏览器中查看.asmx文件,报如下错误:类型“ChildQueryService.Service1”缺少定义名为“ChildQueryPortBinding”的绑定的WebServiceBinding属性。参数名:methodInfo说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.ArgumentException:类型“ChildQueryService.Service1”缺少定义名为“ChildQueryPortBinding”的绑定的WebServiceBinding属性。参数名:methodInfo不知道如何解决,忘高手指教!!!!!!
解决方案
解决方案二:
1.你自定义wsdl的目的?2.ChildQueryPortBinding需要在配置文件中ServiceModel配置节中加入一个CustomBinding
解决方案三:
1自定义的目的是:我们用.net做webservice,另一个公司用java调用,参数需要传入:string[],.net自动生成的wsdl他们那边解析不了。2你说的第二个我不太明白是什么意思,因为刚接触webservice,希望说的明白一点
解决方案四:
wsdl不是.net专有的,lz与其去修改wsdl,不如想办法去序列化要传递的数据,比如用json来传递
解决方案五:
大哥,我们告诉你个实际情况:我们是一个接入单位,另一个单位是客户端(虽然他们是客户端,但他们是一个比较权威的单位),他们已经写好了(用java的jdk6)而且已经有三十几个单位都在用,所有,传的数据类型是不能变的publicStringqueryChildrenByCodes(Stringuser,Stringpassword,string[]codes)是必须的,而.net自动解析出的string[]他们那边就解析不了,所有他们给了我们一个他们能解析的wsdl文档,让我们按照那个文档做,而自定义的wsdl我又不会用,所以才有此问题?希望高手能给个正解!!
解决方案六:
大侠,你说的权威单位是不是品恩?