接受ASP.NET Webservice中的SOAP请求

时间:2016-07-26 06:45:52

标签: c# asp.net web-services soap

我正在尝试在ASP.NET Web服务上接收SOAP请求,但我现在正在这里。

我尝试的第一件事就是在我的网络服务中收到一个简单的字符串,但我的网络服务拒绝了该请求,因为这是一个“危险的请求”。 我尝试的第二件事是使用XmlDocument和XElement作为输入日期类型但是当我尝试在SoapUI中得到一个IndexOutOfRangeException并且不能简单地在浏览器中调用该方法。

在WebMethod中接受SOAP请求有什么技巧吗?

为了更容易理解,我正在寻找这样的解决方案:

[WebMethod]
public XmlDocument Method(string soapRequest)
{
    XmlDocument xmlAnswer = doSomethingWithRequest(soapRequest);

    return xmlAnswer;
}

1 个答案:

答案 0 :(得分:0)

不幸的是,我找不到像我要求的那样简单的解决方案。我尝试了XmlElement这个(非常古老的)article中的提及方式。

我现在以that的方式做到了:

// Create array for holding request in bytes
byte[] inputStream = new byte[HttpContext.Current.Request.ContentLength];

// Read the entire request input stream
HttpContext.Current.Request.InputStream.Read(inputStream, 0, inputStream.Length);

// Set stream position back to beginning
HttpContext.Current.Request.InputStream.Position = 0;

// Get the XML request
string xmlRequestString = Encoding.UTF8.GetString(inputStream);

这对我来说很好。