Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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# IIS提供静态文件,尽管我试图阻止它_C#_Iis_Owin_Static Files - Fatal编程技术网

C# IIS提供静态文件,尽管我试图阻止它

C# IIS提供静态文件,尽管我试图阻止它,c#,iis,owin,static-files,C#,Iis,Owin,Static Files,所以,我一直致力于利用Katana/Owin管道的项目。我正在尝试使用Owin安全地提供静态文件。现在,当我通过VS在本地运行项目时,一切都很好 然而,当我将它部署到服务器WindowsServer2008R2,IIS7时,IIS决定在让任何脏的托管处理程序管理其静态文件之前,它将被诅咒。即使我删除了静态文件处理程序。即使我为特定路径添加了自己的处理程序。即使我告诉它为所有请求运行所有托管模块。由于传入的路径是一个虚拟路径,IIS当然会抛出并死亡,或者抛出500或404错误。我不完全确定是什么导

所以,我一直致力于利用Katana/Owin管道的项目。我正在尝试使用Owin安全地提供静态文件。现在,当我通过VS在本地运行项目时,一切都很好

然而,当我将它部署到服务器WindowsServer2008R2,IIS7时,IIS决定在让任何脏的托管处理程序管理其静态文件之前,它将被诅咒。即使我删除了静态文件处理程序。即使我为特定路径添加了自己的处理程序。即使我告诉它为所有请求运行所有托管模块。由于传入的路径是一个虚拟路径,IIS当然会抛出并死亡,或者抛出500或404错误。我不完全确定是什么导致它在404上吐出500,但只要请求深度超过1个目录,它就会在404上吐出500/Client/Content/Folder/static.html404 vs/Client/Content/Folder/SubFolder/static.html 500


我只是根本不知道该怎么办。更糟糕的是,当我部署到本地IIS时,没有在VS中运行它,也就是说。它工作得很好。它尊重web.config,Owin中间件完美地处理静态请求,安全性到位。一切都很美好。当然,我在我的盒子上运行IIS 8 express,但我不确信这就是问题所在。

我将发表我的评论作为答案,因为我越想它,我就越确信它可能是问题所在

检查所有必要的asp.net和IIS功能是否已通过程序和功能正确安装-在开发环境和服务器环境之间进行比较。我经历过与你基本相同的问题,这通常就是原因


如果这不是原因,请检查IIS设置/应用程序池设置,确保它们位于开发和生产环境中。

是否检查了所有IIS设置,以了解本地版本与服务器之间的差异,例如应用程序池、身份设置等?事件查看器中会显示哪些错误消息?您是否已通过程序和功能安装了所有必需的asp.net模块?如果不查看web.config和/或IIS配置,您只需让每个读者猜一猜。因此,我重新安装了IIS和windows server 2012,希望通过使用IIS 8减少本地和服务器之间可能存在的差异。我已经安装了所有的.NET framework等等。尽管如此,它仍然没有将请求传递给托管代码。如果我删除静态文件处理程序,它只会抱怨静态文件处理程序。我已在web.config中标记。我尝试过各种自定义处理程序,但似乎没有任何效果。