Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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# 无法访问生产服务器(ASP.NET MVC)上的(404)PDF文件_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 无法访问生产服务器(ASP.NET MVC)上的(404)PDF文件

C# 无法访问生产服务器(ASP.NET MVC)上的(404)PDF文件,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我在ASP.NET MVC项目中添加了一个文件夹手册。在这个文件夹中,我有两个pdf文件 在我看来,我有这样的链接: <a href="@Url.Content("~/Manuals/manual1.pdf")">XXXXXXX</a> 据我所知,链接是由属性生成的。在我的开发服务器上: <a href="http://localhost/Manuals/manual1.pdf">XXXXXXX</a> 在生产服务器上: <a href=

我在ASP.NET MVC项目中添加了一个文件夹手册。在这个文件夹中,我有两个pdf文件

在我看来,我有这样的链接:

<a href="@Url.Content("~/Manuals/manual1.pdf")">XXXXXXX</a>
据我所知,链接是由属性生成的。在我的开发服务器上:

<a href="http://localhost/Manuals/manual1.pdf">XXXXXXX</a>
在生产服务器上:

<a href="http://mysecretappaddress.com/Manuals/manual1.pdf">XXXXXXX</a>

已在生产服务器上检查,并且pdf已存在。但问题是——我可以在本地服务器上访问pdf,但在生产服务器上我得到404错误。什么会导致这种奇怪的行为?

您可以在web.config中添加MIME类型。我认为IIS上可能缺少MIME类型

<configuration>
<system.webServer>
        <staticContent>
            <remove fileExtension=".pdf" />
            <mimeMap fileExtension=".pdf" mimeType="application/octet-stream" />
        </staticContent>
    </system.webServer>
</configuration>

默认情况下,IIS阻止未知扩展,并引发404.3错误。要“修复”此问题,可以将其添加到web.config:

 <system.webServer>        
   <staticContent>            
     <mimeMap fileExtension=".pdf" mimeType="application/pdf" />        
   </staticContent>    
</system.webServer>

您应该在生产计算机上的web服务器IIS上检查pdf的mime类型。