有時候知道太多東西也好像不是見好事,像我多年前在幫客戶設定一個〔中文域名〕的時候,就是遇到設定網站前要先將中文域名轉成 PunyCode 才能設定的情況,今天我公司同事由於要替客戶新增一個中文域名的網站,因為他沒設定過,便跑來問我應該如何設定。我就跟他講有 PunyCode 這件事,然而設定完成之後 IIS7 裡的站台完全打不開,而且查不出原因,這才發現原來 IIS7 早已內建支援中文域名,設定的時候無須轉換網址就能正確設定,這件事,還是寫篇文章來提醒大家吧。
如果你早就知道 PunyCode 的存在,很有可能真的會先轉換過再來新增站台,以下我就來新增一次給各位看,並且讓各位看看他會引發的問題:
1. 先在 IIS 管理員新增一個網站,並且要設定「主機名稱」,主機名稱輸入的是 PunyCode 編碼版本

2. 新增完成後,你會發現該站台永遠無法啟動
且錯誤訊息為:值未落在預期的範圍內。 ( Value does not fall within the expected range )

IIS7 顯示的錯誤訊息如此的普通,對剛遇到這問題的人來說真的很難找到真正的問題所在,我第一次碰到時也是處理了好久才找到問題的主因。
以下才是在 IIS7 設定〔中文域名〕網站的正確方法,也就是直接輸入中文,無須先轉換成 PunyCode:

這樣設定之下,就不會遇到無法啟動站台的問題,而且也不會再顯示值未落在預期的範圍內這種奇怪的錯誤訊息了!
相關連結