共用方式為


HOW TO:在 Visual Studio 2008 中處理 ASP.NET AJAX 1.0 Web 專案

更新:2007 年 11 月

Visual Studio 2008 中的多目標支援可讓您在全新與現有網站和 Web 應用程式專案中使用 ASP.NET AJAX 1.0。您可以直接執行現有的網站,而不用將它們升級至最新版的 ASP.NET 與 .NET Framework。同時,您可以在 Visual Studio 2008 中開發並維護 ASP.NET AJAX 1.0 網站,並獲得 Visual Studio 2008 全新功能 (例如 JScript IntelliSense) 的優勢。

如果使用最新的執行階段來執行網站並不可行的話,可以改用舊版的 ASP.NET 和 .NET Framework 來執行網站。下列為適用此方式的情況範例:

  • 負責裝載網站的裝載站台尚未升級至最新版的執行階段。

  • 您的網站與最新執行階段不相容的控制項或元件彼此具有相依性。

在 Visual Studio 2008 中建立新的 AJAX 1.0 網站

下列程序說明如何使用 Visual Studio 2008 來建立新的 ASP.NET AJAX 1.0 網站或 Web 應用程式專案。此程序與完整版的 Visual Studio 2008 和 Visual Web Developer Express 版有些微差異。

若要建立新的 AJAX 1.0 網站

  1. 下載並安裝 ASP.NET AJAX 1.0。您可以從 ASP.NET AJAX 網站 下載安裝程式。

  2. 若要建立新的網站,請執行下列事項:

    1. 按一下 [檔案] 功能表上的 [新網站]。

    2. 在 [新網站] 對話方塊的 [Visual Studio 安裝的範本] 下方,選取 [ASP.NET 網站]。

  3. 若要建立新的 Web 應用程式專案,請執行下列事項:

    1. 按一下 [檔案] 功能表上的 [新增專案]。

    2. 在 [新增專案] 對話方塊的 [Visual Studio 安裝的範本] 下方,選取 [ASP.NET Web 應用程式]。

  4. 如果您使用的是目標 Framework 清單中 (在右上角) 的完整版 Visual Studio 2008 (而不是 Visual Web Developer Express 版),請選取 [.NET Framework 2.0]。

  5. 按一下 [確定]。

    新的網站或專案隨即建立。

  6. 如果您使用的是 Visual Web Developer Express 版,請執行下列事項,將目標 Framework 變更為 2.0:

    1. 在 [方案總管] 中,以滑鼠右鍵按一下站台名稱,然後按一下 [屬性頁]。

    2. 按一下左側清單中的 [組建]。

    3. 選取 [目標 Framework] 清單中的 [.NET Framework 2.0]。

  7. 在網站資料夾的根目錄中,建立 ASP.NET AJAX 1.0 Web.config 檔案。

    如需 ASP.NET AJAX 1.0 Web.config 檔案的內容清單,請參閱本主題稍後介紹的 ASP.NET AJAX 1.0 Web.config 檔案內容。

在 Visual Studio 2008 中,開啟現有的 ASP.NET AJAX 1.0 網站

您可以在 Visual Studio 2008 中直接處理現有的網站或 Web 應用程式,而不用升級至最新版的執行階段。

若要開啟現有的 AJAX 1.0 網站或 Web 應用程式專案

  1. 針對網站或 Web 應用程式專案製作一個備份複本。

    如果不小心升級了網站或專案,升級程序會影響到網站裡的檔案而且無法加以復原。

  2. 在 Visual Studio 2008 中開啟網站或 Web 應用程式專案。

  3. 當 Visual Studio 2008 提示您升級專案時,按一下 []。

    專案會持續將目標設定為 .NET Framework 2.0 進行。

更新 ASP.NET AJAX Control Toolkit 組件

如果您的應用程式包含來自 ASP.NET AJAX Control Toolkit 的控制項或擴充項 (Extender),則您必須升級至新版的 Control Toolkit 才能搭配 Visual Studio 2008 一起執行。您可以從 Codeplex 網站 (英文) 中下載最新版的 ASP.NET AJAX 1.0 Control Toolkit。請確定您已取得 1.0 版 (原始版本) 的程式庫。

重要事項:

Control Toolkit 是社群支援的程式庫,但 Microsoft 並不支援。

在 Control Toolkit 安裝完畢後,可以將 Control Toolkit 控制項加入至 [工具箱]。

若要將 ASP.NET AJAX Control Toolkit 控制項加入至工具箱

  1. 開啟 ASP.NET AJAX 1.0 網站或專案中的 ASP.NET 網頁 (Web Form)。

  2. 以滑鼠右鍵按一下 [工具箱],然後按一下 [加入索引標籤]。

  3. 提供一個新的索引標籤名稱,例如 "ASP.NET AJAX Toolkit 1.0"。

  4. 以滑鼠右鍵按一下新的索引標籤,然後按一下 [選擇項目]。

    注意事項:

    這個對話方塊第一次開啟時,可能會有一些時間上的延遲。

  5. 按一下 [選擇工具箱項目] 對話方塊中的 [瀏覽]。

  6. 瀏覽至包含 AJAX Control Toolkit 組件的資料夾,並選取 AjaxControlToolkit.dll,然後按一下 [開啟]。

    Control Toolkit 中的控制項便會在 [選擇工具箱項目] 對話方塊中顯示為已選取。

  7. 按一下 [確定]。

    控制項已加入至 [工具箱]。

現在您可以在 Visual Studio 2008 中使用 AJAX 1.0 Web 應用程式。應用程式將使用 .NET Framework 2.0 來建置與執行。

下次當您在 Visual Studio 中開啟網站時,就不會再收到要求您升級的提示。但是,您可以隨時將 .NET Framework 的目標版本變更為 .NET Framework 3.5 版。如需詳細資訊,請參閱 HOW TO:將 ASP.NET AJAX 1.0 Web 專案升級至 NET Framework 3.5

在 AJAX 1.0 應用程式中使用 Visual Studio 2008 功能

您可以使用 Visual Studio 2008 中的新功能來開發 AJAX 1.0 應用程式,但有下列例外狀況:

  • [加入新項目] 對話方塊並不提供諸如 [AJAX Web Form] 和 [AJAX 主版頁面] 之類的 AJAX 項目範本。若要建立具有 AJAX 支援的 ASP.NET 網頁或主版頁面,請將普通頁面加入至網站中。再從 [工具箱] 中,將 ScriptManager 控制項加入至頁面。

  • 當您使用 ASP.NET 設定檔服務時,無法使用 JScript IntelliSense。

  • 來自 AJAX 1.0 Control Toolkit 或其他 ASP.NET AJAX 1.0 協力廠商控制項程式庫的擴充項 (Extender) 控制項不支援 Visual Studio 2008 擴充項的設計階段加強項目。例如,它們不支援 [設計] 檢視中的 [選擇擴充項] 智慧標籤命令。

ASP.NET AJAX 1.0 Web.config 檔案內容

若要建立 ASP.NET AJAX 1.0 組態檔,請建立名為 Web.config 的檔案並貼上下列 XML:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
        <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
          <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
          <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
          <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
        </sectionGroup>
      </sectionGroup>
    </sectionGroup>
  </configSections>
  <system.web>
    <pages>
      <controls>
        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </controls>
    </pages>
    <compilation debug="true">
      <assemblies>
        <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
      </assemblies>
    </compilation>
    <httpHandlers>
      <remove verb="*" path="*.asmx"/>
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
    </httpHandlers>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>
  </system.web>
  <system.web.extensions>
    <scripting>
      <webServices>
        <!-- Uncomment this line to customize maxJsonLength and add a custom converter -->
        <!--
          <jsonSerialization maxJsonLength="500">
            <converters>
              <add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
            </converters>
          </jsonSerialization>
        -->
        <!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
        <!--
          <authenticationService enabled="true" requireSSL = "true|false"/>
        -->
        <!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
             and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and
             writeAccessProperties attributes. -->
        <!--
          <profileService enabled="true"
            readAccessProperties="propertyname1,propertyname2"
            writeAccessProperties="propertyname1,propertyname2" />
        -->
      </webServices>
      <!--
        <scriptResourceHandler enableCompression="true" enableCaching="true" />
      -->
    </scripting>
  </system.web.extensions>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
      <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </modules>
    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated"/>
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </handlers>
  </system.webServer>
</configuration>

請參閱

概念

.NET Framework 的目標網站

移轉和轉換 ASP.NET 網站

概觀:將 Visual Studio 網站和專案轉換為 Visual Studio 2008