繁体   English   中英

从Web服务获取数据集

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM