最近網路上有很多的問題,都是關於「在 Visual Studio 上都可以跑,但上到 IIS 就掛了」的問題,幾乎都是同一個原因所造成的-「沒有正確設定 IIS」,以及「沒有正確設定資料庫」造成的,我特別整理了一下,供需要的人參考。
若你是在 Visual Studio 內附的 ASP.NET Development Server 開發的話,請特別注意,它是使用本機的目前使用者帳戶來執行,例如你如果是用管理員帳戶登入,那它的執行帳戶就是管理員,但 IIS 是使用 ASPNET (IIS 5.x 以前),或是 Network Service (IIS 6.0 以後) 帳戶,因此你所有要存取到的資源都要授權 IIS 的執行帳戶,否則會被拒絕存取。
1. 如果你的資源是本機上的檔案或資料夾,請在資料夾的安全性頁籤中,設定 [電腦名稱]\ASPNET (IIS 5.x) 或 [電腦名稱]\Network Service (IIS 6.x 以後),並授予讀取權限,若需要寫入,則還要再授予寫入權限。
2. 設定你的 SQL Server (不管是 Express Edition 還是 Enterprise Edition 都一樣) 和資料庫,讓 [電腦名稱]\ASPNET (IIS 5.x) 或 [電腦名稱]\Network Service (IIS 6.x 以後) 帳戶可以連入 SQL Server,並且有權利存取你的資料庫。這個工作可以由 SQL Server Management Studio (若是 Express Edition 則可能需要安裝 SQL Server Management Studio Express) 來做到。
3. 設定好 ASP.NET 的版本,這點在有安裝 .NET Framework 1.x 和 2.0 的電腦很重要,如果只有安裝 .NET Framework 2.0,那預設就會是 ASP.NET 2.0,否則預設通常會是 ASP.NET 1.1,同時,若你是用 Visual Studio 2003 開發的話,不可以選擇 ASP.NET 2.0 作為執行期版本,反之,若是用 Visual Studio 2005 開發的話,則 ASP.NET 不可選擇 1.x 的版本。