FIX:"不能使用 COM 物件"時出現錯誤訊息使用 STA COM 物件使用 Server.CreateObject 來建立並儲存在不同的 Web 網頁中的工作階段範圍中

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

在此頁中

徵狀

藉由使用 Server.CreateObject,建立單一執行緒的公寓 (STA) COM 物件,然後將這個 STA COM 物件存放在工作階段範圍。如果您使用來自另一個網頁這個 STA COM 物件,您會收到下列錯誤訊息:
不能使用分開其基礎 RCW 的 COM 物件

解決方案

重要若要將這個 Hotfix,您必須安裝在.NET Framework Service Pack 2。

如何取得該 Hotfix

在 2003 年六月中修正這個問題 ASP.NET Hotfix 套件 1.1。如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
821156資訊: ASP.NET 1.1 2003 年六月 Hotfix 彙總套件
您不能個別取得此修正程式。您必須安裝彙總套件。

附註當您要求這個 Hotfix 時,您會收到彙總套件。

此 Hotfix 的英文版具有檔案屬性 (或更新) 中如下表所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用 [中日期] 和 [時間] 工具,在 [控制台] 中的 [時區] 索引標籤]。
   Date         Time   Version       Size       File name
   --------------------------------------------------------------
   25-Apr-2003  03:19  1.0.3705.424    196,608  Aspnet_isapi.dll
   25-Apr-2003  03:19                  510,714  Aspnet_perf2.ini
   25-Apr-2003  03:15                    4,169  Aspnet_perf.h
   25-Apr-2003  03:19                  513,302  Aspnet_perf.ini
   25-Apr-2003  03:19  1.0.3705.424     24,576  Aspnet_regiis.exe
   25-Apr-2003  03:19  1.0.3705.424     28,672  Aspnet_wp.exe
   24-Apr-2003  15:49  1.0.3705.424     69,632  Corperfmonext.dll
   24-Apr-2003  15:47  1.0.3705.424    303,104  Mscorjit.dll
   25-Apr-2003  12:55  1.0.3705.424  1,953,792  Mscorlib.dll
   24-Apr-2003  15:48  1.0.3705.424  2,269,184  Mscorsvr.dll
   01-Aug-2002  18:38                       15  Smartnav.htm
   17-Oct-2002  14:55                    8,728  Smartnav.js
   24-Apr-2003  15:40                   10,284  Mscorlib.ldo
   24-Apr-2003  15:48  1.0.3705.424  2,269,184  Mscorwks.dll
   25-Apr-2003  12:59  1.0.3705.424  1,191,936  System.web.dll

這個 Hotfix 也是可用的 Microsoft.NET Framework 1.0 德文版本。這個 Hotfix 也是可用的 Microsoft.NET Framework 1.0 法文版。

如果您套用 Hotfix 本文中的.NET Framework 1.0 所附的 Microsoft ASP.NET,而且您升級到 Microsoft ASP.NET 隨附在.NET Framework 1.1,請從下列 「 Microsoft 知識庫 」 文件套用 Hotfix 套件:
821156資訊: ASP.NET 1.1 2003 年六月 Hotfix 彙總套件
此外,如果您升級到.NET Framework 1.1,而且如果您遇到本文中的徵狀,請從這個 「 Microsoft 知識庫 」 文件套用 Hotfix 套件。

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

其他相關資訊

如果使用的方式來建立 STA 物件 Server.CreateObject (屬性 AspCompat ="true"),您可以使用物件只能建立它的網頁中。如果您將物件儲存在工作階段範圍,而再您正試圖取得存取權它從不同的 Web 網頁您會收到錯誤訊息。

此外,如果您從 STA COM 物件實作 OnStartPage 方法和 OnEndPage 方法,這些方法不會呼叫您在第二個網頁中的物件上。

重現這個問題的步驟

  1. 使用下列範例程式碼來建立對 ProgIdAspEventProblem.Class1 的 Microsoft Visual Basic 6.0 中 COM 物件:
    Public Function Test() As String
           Test = "Hello from COM Object"
    End Function
  2. 使用 Microsoft Visual Basic.NET 來建立新的 Web 應用程式。
  3. 建立名為 WebForm1.aspx Web Form。
  4. 按鈕 物件加入至包含下列的範例程式碼的 WebForm1.aspx:
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As 	System.EventArgs) Handles MyBase.Load 
          Session("mycomp") =Server.CreateObject("AspEventProblem.Class1") 
    End Sub Private Sub
    Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
          Handles Button1.Click Response.Redirect("webform2.aspx") 
    End Sub 
  5. 建立名為 WebForm2.aspx 包含下列的範例程式碼的 Web Form:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Label1.Text = Session("mycomp").Test()
    End Sub
  6. 在您的瀏覽器中檢視 WebForm1,然後再按一下 [Button1]。
  7. WebForm2 出現時,按一下 [Button1]。

屬性

文章編號: 818612 - 上次校閱: 2005年10月25日 - 版次: 5.2
這篇文章中的資訊適用於:
  • Microsoft .NET Framework 1.0
關鍵字:?
kbmt kbhotfixserver kbqfe kbqfe kbnetframe100presp3fix kbfix kbbug KB818612 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:818612
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