gpt4 book ai didi

.NET 客户端使用 AXIS 1.4 SSL Webservice 所有异常 "INTERNAL SERVER ERROR"

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:42 24 4
gpt4 key购买 nike

我需要通过 SSL 从 .NET 客户端使用 AXIS 1.4 Web 服务。目前我们实现了 System.Net.WebClient,我们手动创建 XML 请求并将其上传到 Web 服务。这对于取回有效结果非常有效,但是如果发生异常 (java.rmi.RemoteException),我们只会取回“Interal Server Error”的 WebException。检查响应不会产生更多详细信息。

如果我们在 Visual Studio 2010 中将服务添加为 .NET 2.0 Web 引用 (SoapHttpClientProtocol),我们会收到所需的 java.rmi.RemoteException 以及纠正问题所需的所有详细信息。但是,所有来自有效请求的结果响应都是空的。

注意:此服务正在被其他(竞争对手的).NET 客户端(我们没有源代码)成功使用。

重申:通过 WebClient 发出的有效请求会收到有效的响应对象,但每个异常都是“内部服务器错误”,通过 Web Reference 发出的有效请求会收到空响应,但会准确显示所需的 java.rmi.RemoteException。

目标:有效的响应以及完整的 java.rmi.RemoteExceptions(不是模糊的内部服务器错误),即使我可以抛出 SoapException,那也是一个巨大的改进。

集成环境:Visual Studio 2010 SP1

操作系统:Windows 7

.NET:2.0/3.5/4.0(我尝试了所有三个版本,结果相同)

语言:C#

示例网络客户端代码:

var lvResult = "";

try
{
var lvStr = "sample request";
var client = new WebClient();
client.Headers.Add("SOAPAction", "SampleRequest");

lvResult = client.UploadString(cvURL, lvStr);
}
catch (Exception ex)
{

}

更新:更具体地说,如果抛出 Soap 异常,这将不是问题,但抛出的唯一异常是“WebException”,它似乎无法让我访问故障字符串。以下是我从 AXIS 服务收到的原始肥皂故障:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>java.rmi.RemoteException: Error in posting Request: Code 02 - No UserId for this user name/password.</faultstring>
<detail>
<ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">xxxx</ns1:hostname>
</detail>
</soapenv:Fault>

解决方案:我通过捕获 WebException 并获取异常响应的响应流找到了解决方法 -

    catch(WebException pvEx)
{
var lvResponseString = "";

if (pvEx.Response != null)
{
using (var lvStreamReader = new StreamReader(pvEx.Response.GetResponseStream()))
{
//This string now contains the xml soap response
lvResponseString = lvStreamReader.ReadToEnd();
}
}

}

最佳答案

这是一篇关于您遇到的问题的帖子:http://bytes.com/topic/net/answers/427757-soap-faults .

我认为您的 AXIS 服务正在返回 SOAPFAULT。您只需要知道如何在您的 .NET 客户端中处理它。这在这篇文章中有所描述。

最好的问候,马可·克鲁维克

关于.NET 客户端使用 AXIS 1.4 SSL Webservice 所有异常 "INTERNAL SERVER ERROR",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7679997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com