現在オフラインです。再接続するためにインターネットの接続を待っています

[FIX] Server.CreateObject を使用して作成した STA COM オブジェクトを別の Web ページのセッション スコープに格納して使用した場合の "COM オブジェクトを使うことはできません" エラー メッセージ

現象
Server.CreateObject を使用して、シングル スレッド アパートメント (STA) COM オブジェクトを作成し、その STA COM オブジェクトをセッション スコープに格納します。この STA COM オブジェクトを他の Web ページから使用すると、次のエラー メッセージが表示されます。
基になる RCW から分割された COM オブジェクトを使うことはできません
解決方法
重要 : この修正プログラムを適用するには、.NET Framework Service Pack 2 をインストールする必要があります。

修正プログラムの入手方法

この問題は、ASP.NET 修正プログラム パッケージ 1.1 (2003 年 6 月) で修正されています。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
821156 ASP.NET 1.1 修正プログラム ロールアップ パッケージ (2003 年 6 月)
この修正プログラムを個別に入手することはできません。ロールアップをインストールする必要があります。

: この修正プログラムを要求した場合は、ロールアップが送付されます。

修正プログラム (英語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。各ファイルの日付および時刻は、世界協定時刻 (UTC) で示されています。ファイル情報に表示される時刻は、ローカル時刻に変換されています。UTC とローカル時刻との時差を確認するには、コントロール パネルの [日付と時刻] の [タイム ゾーン] タブを使用してください。
   日付            時刻   バージョン         サイズ     ファイル名   --------------------------------------------------------------   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

この修正プログラムは、Microsoft .NET Framework 1.0 ドイツ語版用も用意されています。また、Microsoft .NET Framework 1.0 フランス語版用も利用可能です。

この資料の修正プログラムを .NET Framework 1.0 に含まれている Microsoft ASP.NET に対して適用し、かつ .NET Framework 1.1 に含まれている Microsoft ASP.NET にアップグレードした場合は、次の「サポート技術情報」 (Microsoft Knowledge Base) に記載されている修正プログラム パッケージを適用してください。
821156 ASP.NET 1.1 修正プログラム ロールアップ パッケージ (2003 年 6 月)
また、.NET Framework 1.1 にアップグレードしていて、この資料の現象が発生した場合は、この「サポート技術情報」の修正プログラム パッケージを適用してください。
状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細
Server.CreateObject (Attribute AspCompat ="true") を使用して STA オブジェクトを作成した場合、そのオブジェクトはオブジェクトを作成した Web ページでのみ使用可能です。オブジェクトをセッション スコープに格納し、別の Web ページからアクセスしようとすると、エラー メッセージが表示されます。

また、STA COM オブジェクトで OnStartPage メソッドおよび OnEndPage メソッドを実装した場合、それらのメソッドは別の Web ページに存在するオブジェクトでは呼び出されません。

現象の再現手順

  1. 次のサンプル コードを使用して、ProgId を AspEventProblem.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. Web フォームを WebForm1.aspx という名前で作成します。
  4. 次のサンプル コードを含む Button オブジェクトを 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 SubButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)      Handles Button1.Click Response.Redirect("webform2.aspx") End Sub 
  5. 次のサンプル コードを含む Web フォームを、WebForm2.aspx という名前で作成します。
    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 - 最終更新日: 06/09/2006 06:53:00 - リビジョン: 5.2

  • Microsoft .NET Framework 1.0
  • kbbug kbfix kbqfe kbnetframe100presp3fix kbhotfixserver KB818612
フィードバック