![](/img/trans.png)
[英]DataSet in Java Web Service Client from C# Web Service
[英]get Dataset from web service
就是这种情况:我开发了一个Web服务,该服务仅获取字符串参数并返回DataSet
:
[WebMethod]
public DataSet login(string strClientCertificate, string strClientChallengeSigned, string MsgChallenge, string rndNum)
我想在客户端使用此Web服务,因此我准备了参数并将其发送给我引用的Web服务:
在客户端:
DataSet xmlResponse = new DataSet();
MySrvRef.StockServiceSoapClient proxy2 = new StockServiceClient.MySrvRef.StockServiceSoapClient();
xmlResponse = proxy2.login(strCert, strSignedMsg, message, randomNum);
我只想向客户端显示xmlResponse,但在VS2008中出现此错误:
mscorlib.dll中发生了类型为'System.ServiceModel.ProtocolException'的未处理异常
附加信息:远程服务器返回了意外的响应:(400)错误的请求。
我很困惑。 有任何想法吗?
[EDIT1]
我已经在客户端的app.config
文件中更改了内容长度:
<basicHttpBinding>
<binding name="StockServiceSoap" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
[编辑2]我什至将我的方法更改为简单的字符串返回方法:
[WebMehod]
public string login(string x, string y, string z, string w)
{
return "yes";
}
从客户端调用它,但有相同的协议异常:(。
我的服务中有另一种方法定义为:
[WebMehod]
public byte[] getChallenge()
我称它在客户端没有任何问题。
我发现了问题。 当我在Web服务方法(带有参数)中插入一个断点时,它没有被命中。 因此,我对问题进行了调查,发现我的一个string
参数在C#
未被识别为string
参数,这就是未从客户端调用我的Web服务方法并且收到协议异常错误的原因 。 希望这会对其他有相同问题的人有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.