问候
我的ASP MVC应用程序有点问题。 在我的本地开发服务器上一切正常,但是当我尝试将应用程序发布到IIS 7.0服务器时,它只显示没有任何样式/标记/图像的普通页面。
我将所有这些内容放在/ Content /子文件夹中,但是当我尝试访问生产服务器上的该文件夹时,它只返回404未找到的错误。
我使用.Net 4.0设置IIS服务器,并按照此处的部署指南进行操作:http://www.asp.net/learn/mvc/tutorial-08-cs.aspx
所有的视图/控制器/类似乎都运行得很好,唯一没有的是内容子文件夹,我不明白为什么。
任何人都有一个建议我可以忽略或有人知道这个问题吗?
答案 0 :(得分:10)
我遇到了同样的问题,但我找到了为什么强制在Contents文件夹中进行身份验证的原因。
当用户尚未登录时,它们将被归类为匿名身份验证。在IIS7中(我正在使用它,猜测它在IIS6中是相同的)您需要在功能视图中打开身份验证窗口。然后编辑匿名身份验证,使用您的应用程序池标识或默认身份验证,只需确保该用户有权读取该文件夹。
为我修好了,希望它适合你。
答案 1 :(得分:3)
好吧,我将IIS_IUSR
添加到项目目录中,发现了同样的问题:
内容文件夹中不会加载CSS,也不会加载任何内容
但它解决了Unable to start debugging on the web server
问题
然后,我将IUSR
添加到同一文件夹,并解决了问题。现在,我可以看到图像,CSS样式和所有这些东西。
答案 2 :(得分:2)
这是因为您可能在src上使用固定路径,例如:../../Content/Styles/style.css
。在MVC中,您应该使用Url帮助程序:Url.Content("~/Content/Styles/style.css")
。
使用Url助手,您应该没有问题。
答案 3 :(得分:1)
用这个把头发拉了一整夜。
在W2K8,MVC2,.NET 4.0和IIS 7上(使用VS 2010)
确保IIS_IUSRS拥有对根文件夹的完全权限,但仍然没有go-css,js,在呈现页面时仍无法访问图像....
然后....这么简单:
在网站的功能视图中为.js,.css和.jpg定义的MIME类型 - 并且瞧!
甜!
P.S。我的第一个mvc应用程序 - 我想我喜欢它......
答案 4 :(得分:0)
检查内容文件夹的属性...查看它们是否由于某种原因“本地复制”。
答案 5 :(得分:0)
虚拟目录指向的文件夹为用户提供了“All”读取属性。