使用IIS7访问ASP.Net MVC项目的静态内容

5
我已经在本地的IIS 7上创建了一个网站,并在其根目录下使用自己的ASP.Net MVC项目。除了静态内容之外,一切正常。访问http://localhost:8080/Content/Site.css时会出现404错误。我可以在IIS管理器中看到该文件夹。在使用Visual Studio 2008运行应用程序时,使用的小型开发服务器可以很好地提供内容。有什么想法可能是错的吗?
3个回答

5
问题出在权限上。尽管我在创建IIS7网站时告诉它使用我的用户访问文件(否则它根本无法工作),但对于静态文件,它使用应用程序池的用户。将IIS APPPOOL\MyApplication授予访问项目所在文件夹的权限解决了问题。

我以前在玩SQLite时也见过这种情况。 - Arnis Lapsa

3

你能行吗?

routes.RouteExistingFiles = true;

在你的 Global.asax 文件中吗?


Global.asax.cs中的内容没有帮助。ASP.Net MVC模板是否可能以这种方式损坏?我原本期望是配置问题,而不是编码问题。谢谢。 - pupeno
默认情况下,所有现有文件都被路由。当我在Visual Studio中创建一个新的MVC应用程序时,我可以访问/Content中的所有静态文件。你只需要找到谁改变了默认设置以及在哪里 ;) - chris166
我可以在使用开发服务器时访问Content中的静态文件,但是在部署到IIS7上时却不能。 - pupeno
我只使用IIS7进行开发... 你尝试在另一台安装了IIS7的机器上运行吗? - chris166
我没有其他安装IIS7的机器,但我不确定我做了什么,但在这样做并删除此行之后,它开始工作了。 - pupeno

1

1
没有路由,这是静态内容。该URL会转换为http://localhost:8080/Content/Site.css。 - pupeno
你说得对,我自己还没有尝试过。如果你将 CSS 的副本移动到站点的根目录中,那么你能够加载它吗? - Lazarus
不好意思,我无法访问任何静态内容。包括CSS文件或者文件夹(我已启用索引)。 - pupeno
很高兴看到你找到了解决方案,你应该将其标记为答案。 - Lazarus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接