close

由於工作的需要必須使用.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>

這樣就可以繼續開發我的專案 又不用擔心虛擬主機的問題了

arrow
arrow
    全站熱搜

    ADOLPH 發表在 痞客邦 留言(0) 人氣()