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

文書翻訳 文書翻訳
文書番号: 818612 - 対象製品
すべて展開する | すべて折りたたむ

目次

現象

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 Sub
    Button1_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 - 最終更新日: 2006年6月9日 - リビジョン: 5.2
この資料は以下の製品について記述したものです。
  • Microsoft .NET Framework 1.0
キーワード:?
kbbug kbfix kbqfe kbnetframe100presp3fix kbhotfixserver KB818612
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

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