Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 传输到HttpHandler_C#_Asp.net_Httphandler - Fatal编程技术网

C# 传输到HttpHandler

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&

我有一个具有以下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>");
    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();