由於未處理伺服器端程式碼使得 ASP.NET 網頁出現非預期的行為

文章翻譯 文章翻譯
文章編號: 325093 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

執行階段所出現的徵狀

在 Microsoft ASP.NET Web 應用程式中檢視 .aspx 網頁時,您可能會遇到下列徵狀:
  • 瀏覽器中可能出現空白頁。
  • 您可能會收到下載 .aspx 網頁的指示。
問題通常是已經處理 .aspx 網頁的伺服器端程式碼,使得程式碼無法以原始格式傳送到 Web 瀏覽器。

使用 Visual Studio .NET 偵錯 ASP.NET 時所出現的徵狀

在 Microsoft Visual Studio .NET 中偵錯 ASP.NET 應用程式時,您可能會在 IDE 中收到下列錯誤訊息:
Error while trying to run project:Unable to start debugging on the Web server.The server does not support debugging of ASP.NET or ATL Server applications.Run setup to install the Visual Studio .NET server components.If setup has been run, verify that a valid URL has been specified. (嘗試執行專案時發生錯誤:無法在 Web 伺服器上啟動偵錯。伺服器不支援對 ASP.NET 或 ATL Server 應用程式進行偵錯。請執行安裝程式,以安裝 Visual Studio .NET 伺服器元件。如果已執行安裝程式,請確認是否已指定有效的 URL。)

You may also want to refer to the ASP.NET and ATL Server debugging topic in the online documentation.Would you like to disable future attempts to debug ASP.NET pages for this project? (您可能也希望參考線上文件中 ASP.NET 以及 ATL Server 偵錯主題的內容。您要停用未來對此專案 ASP.NET 網頁的偵錯嘗試嗎?)

發生的原因

在安裝 Microsoft .NET Framework Software Development Kit (SDK) 或 Microsoft Visual Studio .NET 之後,便會建立 Microsoft Internet Information Services (IIS) 對應,以便與 ASP.NET 的新副檔名和新設定產生關聯。

如果發生下列其中一種情況,新的設定值將不會生效:
  • 當您執行 .NET Framework SDK 或 Visual Studio .NET 安裝程式時,並未安裝 IIS。
  • 在執行 .NET Framework SDK 或 Visual Studio .NET 安裝程式之後,您移除並重新安裝過 IIS。

解決方案

如果要解決這個問題,請修復 IIS 對應,以便使 ASP.NET 的副檔名能夠正確地產生關聯。有兩種方法可以修復 ASP.NET 的 IIS 對應。

如果要修復 ASP.NET 的 IIS 對應,請執行 Aspnet_regiis.exe 公用程式。如果要執行這項操作,請依照下列步驟執行:
  1. 按一下 [開始],然後按一下 [執行]
  2. 輸入 cmd,然後按一下 [確定]
  3. 在命令提示字元中輸入下列命令,然後按下 ENTER:
    "\WindowsFolder\Microsoft.NET\Framework\VersionNumber>\aspnet_regiis.exe" -i
    注意 請使用安裝作業系統的目錄名稱取代 WindowsFolder。使用安裝在電腦上的 .NET Framework 版本取代 VersionNumber
如果要修復 ASP.NET 的 IIS 對應,您必須登錄 Aspnet_isapi.dll。如果要執行這項操作,請依照下列步驟執行:
  1. 按一下 [開始],然後按一下 [執行]
  2. 輸入 regsvr32 WindowsFolder\Microsoft.NET\Framework\VersionNumber\aspnet_isapi.dll,然後按一下 [確定]。Regsvr32 會傳回登錄的結果。

狀況說明

這是原本設計的作法。

其他相關資訊

重現問題的步驟

請依照下列步驟執行,以確認您是否遇到本文中所述的問題。此測試會檢查與這個問題相關的常見徵狀。如果您已經熟悉 IIS 應用程式對應的運作方式,則也可以依照本文<如何確認您的 IIS 應用程式對應>一節中的步驟,以確認 Web 伺服器的設定。
  1. 如果要建立 ASP.NET Web 應用程式,請使用 Visual Studio .NET。如果要執行這項操作,請依照下列步驟執行:
    1. 啟動 Microsoft Visual Studio .NET。
    2. [檔案] 功能表上,指向 [新增],然後按一下 [專案]
    3. [新增專案] 對話方塊中,按一下 [專案類型] 下的 [Visual C# 專案][Visual Basic 專案],然後按一下 [範本] 下的 [ASP.NET Web 應用程式]
    4. [位置] 方塊中,使用 MyWebApp 取代 WebApplication# 預設名稱。如果您使用本機伺服器,則可以將伺服器名稱保留為 http://localhost。最後產生的 [位置] 方塊顯示如下:
      http://localhost/MyWebApp
  2. 在方案總管中,用滑鼠右鍵按一下專案節點,指向 [新增],然後按一下 [加入 Web Form]。將 Web Form 命名為 MappingsTest.aspx,然後按一下 [開啟]
  3. 在編輯器中用滑鼠右鍵按一下 .aspx 網頁,然後按一下 [檢視程式碼]。將下列程式碼新增至 Page_Load 事件處理常式:

    Visual C# .NET
    private void Page_Load(object sender, System.EventArgs e)
    {
    	Response.Write("This code was executed");
    }
    						
    Visual Basic .NET
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Response.Write("This code was executed")
    End Sub
    					
  4. [檔案] 功能表上,按一下 [全部儲存] 以儲存 Web Form 和其他相關的專案檔案。
  5. 在 Visual Studio .NET IDE 的 [建置] 功能表上,按一下 [建置方案]
  6. 用滑鼠右鍵按一下 .aspx 網頁,然後按一下 [在瀏覽器中檢視]
  7. 如果對應均正確,瀏覽器中便會出現「This code was executed (已執行此程式碼)」訊息。如果對應不正確,則會發生下列其中一個行為:
    • 瀏覽器中出現空白頁。
    • 您收到下載 .aspx 網頁的提示。
    如果伺服器端程式碼沒有以預期的方式處理或執行,就會發生這個問題。不論是哪種情況,您都會收到尚未處理的原始程式碼。對於空白頁面的情況而言,如果您用滑鼠右鍵按一下瀏覽器中的網頁,然後按一下 [檢視原始檔],就會發現伺服器端程式碼以尚未處理的格式出現。例如,在 Visual C# ASP.NET Web Form 中,@ Page 指示詞會以類似下列的方式出現:
    <%@ Page language="c#" Codebehind="MappingsTest.aspx.cs" AutoEventWireup="false" Inherits="MyWebApp.MappingsTest" %>
    					

如何確認您的 IIS 應用程式對應

如果要確認應用程式對應是否正確,請依照下列步驟執行:
  1. 按一下 [開始],指向 [程式集],再指向 [系統管理工具],然後按一下 [Internet 服務管理員]
  2. 展開對應至本機主機 (電腦名稱) 的節點,然後展開 [預設的網站] 節點。
  3. 用滑鼠右鍵按一下您的 Web 應用程式目錄,然後按一下 [內容]
  4. [目錄] 索引標籤的 [應用程式設定] 下,按一下 [設定]
  5. 按一下 [應用程式對應] 索引標籤。
  6. [應用程式對應] 索引標籤的 [應用程式對應] 下,檢查 .aspx 副檔名是否對應到下列的 DLL:
    C:\WindowsFolder\Microsoft.Net\Framework\VersionNumber\aspnet_isapi.dll
    注意 請使用安裝作業系統的目錄名稱取代 WindowsFolder。使用安裝在電腦上的 .NET Framework 版本取代 VersionNumber
  7. 如果您找不到應用程式對應項目,請依照本文<解決方案>一節中的步驟執行。

?考

修復 ASP.NET 的 IIS 對應之解決方案是衍生自「Microsoft 知識庫」文件 Q306005。 如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
306005 如何在移除並重新安裝 IIS 之後修復 IIS 的對應
下列文件提供有關本文先前所述之偵錯案例的詳細資訊:
318465 PRB:無法偵錯 ASP.NET Web 應用程式

屬性

文章編號: 325093 - 上次校閱: 2007年12月4日 - 版次: 4.4
這篇文章中的資訊適用於:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Studio .NET 2003 專業版
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
  • Microsoft Internet Information Services 6.0
  • Microsoft Internet Information Services version 5.1
  • Microsoft Internet Information Services 5.0
關鍵字:?
kbconfig kbdebug kbprb kbsetup kbwebforms KB325093
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com