由於工作的需要必須使用.net 2.0進行web開發
一開始並沒有注意到而使用.net 3.5 開發了一陣子後
準備再虛擬主機上進行測試時 發現 Asp.net程式怎麼都Run不起來
但是一般網頁卻OK
於是意識到…虛擬主機商的ASP.Net環境 絕大部分都只支援到.net 2.0
那怎麼辦呢?捨棄 AJAX的套件功能? 全部打掉重寫? 改用大量的javascript ?
對我而言以上的方法大概只有第一跟第二可行 因為我的Javascript撰寫能力
僅停留在需要時 上網找找參考....(這點有需要補強~@@)
於是在不甘心捨棄已經開發一半的專案下去找了一些辦法
才發現微軟也有提供解決方案 以下 就是解決過程的紀錄
當你把.net 3.5的專案部屬到 只支援.net 2.0的主機上時 顯然是不可行
而更改專案設定為.net 2.0 會發現 我的AJAX元件通通都會呈現錯誤的狀態
解決辦法是
先安裝asp.net ajax extensions 此功能是提供.net 2.0 開發 AJAX的Client-Side功能
接下來安裝Microsoft ASP.NET 2.0 AJAX Templates for Visual Studio 2008 樣板套件
這樣就可以在vs2008中選擇AJAX專案
但是必須修改web.config的設定 指定特定的組件版本
加入以下設定
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
</pages>
接下來加入參考
必須加入System.Web.Extensions 與 System.Web.Extensions.Design兩個參考
請注意必須選擇 版本為 1.0.61025.0的版本 而不是3.5
當然加入參考的這個部分也可以手動由Web.config指定 不過使用GUI或Web.config設定 兩邊都會同步其設定
因此懶人一族的我 就傾向使用GUI
<compilation debug="true" strict="false" explicit="true">
<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies>
</compilation>
這樣就可以繼續開發我的專案 又不用擔心虛擬主機的問題了
留言列表