在ASP.NET Webservice中接受SOAP请求

问题描述:

我试图在ASP.NET webservice上接收SOAP请求,但我现在在这里调用。在ASP.NET Webservice中接受SOAP请求

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

是否有任何技巧接受WebMethod中的SOAP请求?

为了便于理解,我正在寻找这样一个解决方案:

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

    return xmlAnswer; 
} 

可惜我找不到任何方式与这样一个简单的解决方案,以做到像我问。我试过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); 

这对我来说工作正常。