0

情况如下:我开发了一个 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) 错误请求。

我完全糊涂了。有任何想法吗?

[编辑1]

我已经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()

我在客户端调用它没有任何问题。

4

1 回答 1

0

我发现了问题。当我在我的 Web 服务方法(带参数)中插入一个断点时,它没有被击中。所以我调查了这个问题,发现我的一个字符串参数没有被识别为string参数,C#这就是我的 web 服务方法没有从客户端调用并且我得到协议异常错误的原因。希望这会帮助其他有同样问题的人。

于 2013-09-07T07:28:47.103 回答