【问题标题】:ASP.NET MVC 2, Windows XP, and IIS 5.1ASP.NET MVC 2、Windows XP 和 IIS 5.1
【发布时间】:2010-10-07 16:01:04
【问题描述】:

尝试在 XP 的 IIS 上托管 MVC 2 让我头疼! (这是在 VS 2008 上,但可能也适用于 VS 2010。)

经过一番挣扎,我最终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

【问题讨论】:

    标签: asp.net-mvc-2 windows-xp iis-5


    【解决方案1】:

    我不确定问题出在哪里,但是 IIS 服务器无法识别 Url.Content() 返回的值(您无法从浏览器中检索它)。事实上,我不应该将它用于简单的链接。

    修复步骤:

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

    现在一切都应该是桃色的(它在我的电脑上运行)。应该不再需要 Url.Content(),样式应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      相关资源
      最近更新 更多