【发布时间】:2015-12-10 15:42:42
【问题描述】:
所以,我一直在从事利用 Katana/Owin 管道的项目。我正在尝试使用 Owin 安全地提供静态文件。现在,当我通过 VS 在本地运行项目时,一切正常。
但是,当我将它部署到服务器(Windows Server 2008 R2、IIS 7)时,IIS 决定在它让任何脏托管处理程序管理其静态文件之前,它会被诅咒。即使我删除了静态文件处理程序。即使我为特定路径添加了自己的处理程序。即使我告诉它为所有请求运行所有托管模块。而且由于传入的路径是虚拟路径,IIS 当然会崩溃并死掉,要么吐出 500 或 404 错误。我不完全确定是什么原因导致它在 404 上吐出 500,但只要请求深度超过 1 个目录,它就会在 404 上给出 500。(/Client/Content/Folder/static.html(404) vs /Client/Content/Folder/SubFolder/static.html (500))
我根本不知道从这里去哪里。更糟糕的是,当我部署到本地 IIS 时(不是在 VS 之外运行它),它运行良好。尊重web.config,Owin中间件完美处理静态请求,安全到位。一切都是桃色的。当然,我正在我的机器上运行 IIS 8 express,但我不相信就是这样。
【问题讨论】:
-
您是否检查了所有 IIS 设置以了解本地版本和服务器之间的差异,例如应用程序池、身份设置等?事件查看器中显示什么错误消息?您是否通过程序和功能安装了所有必需的 asp.net 模块?
-
无需查看您的 web.config 和/或 IIS 配置,您只需让每位读者猜测即可。
标签: c# iis owin static-files