2010-10-07 82 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()了,造型應該可以工作。