C# 传输到HttpHandler
我有一个具有以下ProcessRequest方法的IHttpHandler:C# 传输到HttpHandler,c#,asp.net,httphandler,C#,Asp.net,Httphandler,我有一个具有以下ProcessRequest方法的IHttpHandler: public void ProcessRequest(HttpContext context) { int id = Convert.ToInt32(context.Request.QueryString["id"] + 151); var xml = XDocument.Parse("<xml><cartid>" + id + "</cartid></xml&
public void ProcessRequest(HttpContext context) {
int id = Convert.ToInt32(context.Request.QueryString["id"] + 151);
var xml = XDocument.Parse("<xml><cartid>" + id + "</cartid></xml>");
context.Response.Write(xml);
}
我得到一个HttpException:执行处理程序“PostTest.order”的子请求时出错
如果我改为尝试进行如下转移:
Server.Transfer("~/order.ashx?id=65", false)
我得到一个HttpException:执行/order.ashx的子请求时出错
我是做错了还是有其他方法可以实现我的目标?只需传递上下文即可:
var handler = new order();
handler.ProcessRequest(Context);
Response.End();
使用Response.Redirect()有问题吗?aspx页面正在从另一台服务器(不是用户的浏览器)接收包含数据的帖子,我不确定它是否会执行重定向,但我会尝试。为什么不让另一台服务器直接调用处理程序,并将必要的逻辑从您的aspx页面移动到那里?一个ASPX页面并不能真正成为另一台服务器调用的好端点。它不是我们的服务器,而另一家公司的人员也没有什么帮助,所以我一直在努力解决这个问题。我可能会要求他们更改链接,但我想有人可能知道一个快速的解决方案。可以将逻辑粘贴到ASPX页面中,从page_Load方法调用Response.Clear(),然后使用处理程序中的相同逻辑直接从那里处理调用。难看,但在必要的时候应该能用。那真的很酷。我已经使用ASP.NET很多年了,但不知道这一点。使用上面的代码,我可以在请求中传递一些东西,然后从handler返回响应。这很好,除非您希望从处理程序访问查询字符串(查询字符串将是当前页面的一个字符串,与使用Server.Transfer得到的结果不同)。我想别无选择。。。
var handler = new order();
handler.ProcessRequest(Context);
Response.End();