如何在ASP中转发SOAP请求.. NET在IIS6上

本文关键字:请求 NET IIS6 SOAP 转发 ASP | 更新日期: 2023-09-27 18:14:18

我正在尝试创建一个托管在IIS 6上的应用程序(或web服务),该应用程序将使用修改后的凭据将SOAP请求转发给另一个web服务应用程序。

现在我在我的应用程序的Page_Load中有这样的内容:

HttpWebRequest newRequest = (HttpWebRequest)WebRequest.Create(newUrl);
newRequest.ContentType = original.ContentType;
newRequest.ContentLength = original.ContentLength;
newRequest.Method = original.HttpMethod;
newRequest.UserAgent = original.UserAgent;
newRequest.Credentials = new NetworkCredential("login","password","domain");
HttpWebResponse response = (HttpWebResponse)newRequest.GetResponse();

问题是它在最后一行崩溃,因为ContentLength> 0,我不打开RequestStream,因为我不知道如何从原始请求中获得它。

我没有标题这个问题"如何从HttpWebRequest获得SOAP请求",因为我相信有一个更容易的解决方案,我正在尝试做什么。也许是Java中的请求分派器。

如何在ASP中转发SOAP请求.. NET在IIS6上

SOAP请求没有什么神奇之处——毕竟它只是HTTP。您应该能够使用如下命令复制请求正文:

Context.Request.InputStream.CopyTo(newRequest.GetRequestStream());

你也应该确保你复制了所有其他重要的HTTP头,可能是在原始请求中设置的。