2010-10-07 81 views
3

我遇到了尝试在XP的IIS上托管MVC 2的麻烦! (这是在VS 2008上,但也可能适用于VS 2010)ASP.NET MVC 2,Windows XP和IIS 5.1

经过很多努力,我最终found a way从IIS 5.1显示我的MVC 2站点,但问题是,没有造型!任何想法,我应该如何解决这个问题?

问题可能是路径位置。遵循上面链接的建议,如果我将我的CSS链接的相对路径从<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />更改为<link href="%3C%=Url.Content%28" ~="" content="" site.css="")="" %>="" rel="stylesheet" type="text/css" />,那么它不会进行任何转换。当我将其更改为<link href="<%=Url.Content(" ~="" content="" site.css="")="" %>="" rel="stylesheet" type="text/css" />时,出现错误“换行符不变”。

编辑:正常<link href="<%= Url.Content("~/Content/Site.css")%>" rel="stylesheet" type="text/css" />转化为<link href="/Mvc2.VS2008/Content/Site.css" rel="stylesheet" type="text/css" />(其中Mvc2.VS2008是我的网站根目录),但Content/Site.css托管这种方式,当找不到。

回答

1

我并不完全确定问题是什么,但Url.Content()返回的值未被IIS服务器识别(您无法从浏览器中检索到)。事实上,无论如何,我不应该为简单的链接需要它。

步骤来解决:

  1. 完全重新安装IIS 5.1(卸载,重新启动,删除C:\ Inetpub文件夹,安装)。
  2. 注册.NET为IIS(v2的第一然后V4):(Error message = "Failed to access IIS metabase")
    • 在命令提示,转到适当的文件夹(例如cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
    • ASPNET_REGIIS -i
    • IISRESET
      • 如果此步骤(服务没有及时响应启动或控制请求)(2147943453,8007041d)“,从无奈中无言地诅咒,并通过IIS控制台手动重新启动站点(开始 - >程序 - >管理工具 - > Internet信息服务)。如果你是(正确)偏执狂,重新启动你的电脑。
  3. 添加读取访问人人
    • Download MetaAcl
    • 打开命令提示符
    • Metaacl.vbs "IIS://localhost/W3SVC"
      • 查看当前访问(每个人只有E)
    • Metaacl.vbs "IIS://localhost/W3SVC" Everyone R
      • 这个固定
  4. 添加IIS虚拟目录
    • 要知道,在“默认Web站点的IIS控制台。“
  5. 提醒上发布:(你应该知道这一点的话)
    • Windows身份验证(<authentication mode="Windows" />web.config)要求您启用集成Windows身份验证在IIS目录安全性
    • 它有助于禁用匿名。访问。(在web.config添加<authorization><deny users="?"/></authorization>,或取消在IIS目录安全性 “匿名访问”)
  6. Configure IIS virtual folder
    • IIS配置映射(右键单击虚拟文件夹 - >属性 - >虚拟目录选项卡 - >配置 - >映射选项卡)
    • 添加扩展名“。*”,exec path =(从.aspx复制“扩展名)
    • 取消选中‘检查文件是否存在’
    • 单击OK(这个不用说了)
  7. 加载你的网站在你喜欢的浏览器。

现在一切都应该只是桃色(它在我的电脑上工作)。应该不再需要Url.Content()了,造型应该可以工作。