2011年9月15日 星期四

Publish REST services on IIS 6.0

利用 WCF REST Service Template 完成 REST service 後,最後的問題是怎麼把它放到既有的 IIS 6 server 上。

Prerequisite

Steps

  1. 首先在 server 端,先替 IIS6 安裝好 Web Deploy 2.0。
  2. 在 client 端利用 VS2010 的 publish 介面將網站發布到 server 端。請參考如下設定:
    image
    其中,Service URL 就是 msdepsvc 的網址。而 Site/application 則填入欲發布的 server 端網站名稱(Site)與  WebApp 名稱(application)。
    • 舉例來說,若是遠端網站名為 Default,欲發布的 app 名為 test,則在 Site/application 填入:Default/test
  3. 另外當然,在 server 端也必須安裝好 .NET 4.0 framework。
    • 若是再安裝完 IIS 後才安裝 framework,須在 .NET 4.0 目錄下(如 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319)執行 aspnet_regiis –i
  4. 執行 aspnet_regiis.exe –lk 確認目前各 WebApp 的 .NET 版本狀態。並且確認剛 publish 過來的 app 是否使用正確的 .NET framework 版本:
    image
    • 以剛剛的例子來說,假設你的網站 ID 為 45,則執行後應該要顯示:
      W3SVC/45/Root/test    4.0.30319.0
    • 若發現不是使用 4.0 或更高的版本,則需要在對應的 .NET framwork 中執行
      aspnet_regiis –s W3SVC/45/Root/test
      將其更新為正確的版本。
    • 若是不知道網站 ID,可以透過 IIS 管理員的介面查看:image
    • 同理,若是同一個網站底下的其他 App 想使用不同的 .NET Framwork 版本,也可以使用對應的 aspnet_regiis 來設定之。
  5. 最後依造 Deploying ASP.NET MVC to IIS 6 的步驟,使用 wildcard mapping,讓 IIS 6 可以處理 routing。需注意,一定要把 uncheck Verify that file exists. 的選項取消!

沒有留言: