Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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# 交叉请求未正确返回文件_C#_Asp.net_Asp.net Mvc_Httpwebrequest - Fatal编程技术网

C# 交叉请求未正确返回文件

C# 交叉请求未正确返回文件,c#,asp.net,asp.net-mvc,httpwebrequest,C#,Asp.net,Asp.net Mvc,Httpwebrequest,我想通过代理脚本将查询发送到后端服务器。但它不能正确返回文件 public class HttpWebRequestRunner : IWebRequestRunner { public HttpWebResponse Run(string backendUri) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(backendUri); HttpWebResponse re

我想通过代理脚本将查询发送到后端服务器。但它不能正确返回文件

public class HttpWebRequestRunner : IWebRequestRunner
{
    public HttpWebResponse Run(string backendUri)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(backendUri);

        HttpWebResponse response = (HttpWebResponse) request.GetResponse();

        return response;
    }
}
我的后端服务器关闭到internet,所以我将参数发送到Asp.NETMVC应用程序。并将请求发送到后端服务器

后端服务器正在为此请求返回文件:
http://10.0.2.1/Employee/CV/1445

在我的mvc控制器中,我使用:

 public class PersonController : Controller
    {
        public ActionResult GetCv(int id)
        {
            HttpWebResponse response = new HttpWebResponse();

            HttpWebResponse webResponse = response.run("http://10.0.2.1/Employee/CV/1445");

            context.HttpContext.Response.ContentType = wbResponse.ContentType;

            webResponse.GetResponseStream().CopyTo(context.HttpContext.Response.OutputStream);

            // write result...
        }       
    }
现在

如果我从浏览器向后端发送请求,则此url
http://10.0.2.1/Employee/CV/1445
它返回1445.pdf文件

但是如果我像这样通过prox应用程序发送请求
http://localhost:22414/Person/GetCv/1445

这将返回一个名为file的文件,但不返回pdf扩展名。

您还需要中继
内容配置
HTTP头。

头信息中包含文件名<代码>webResponse.Headers[“内容处置”]。所以你必须这样使用:

 context.HttpContext.Response.Headers.Set(
     "Content-Disposition", 
     webResponse.Headers.Get("Content-Disposition"));

我已经编辑了你的标题。请参阅“”,其中的共识是“不,他们不应该”。