ИСПРАВИТЬ: «COM-объект не может использоваться» появляется сообщение об ошибке можно использовать объект COM STA, созданный с помощью Server.CreateObject и хранятся в области действия сеанса в другую веб-страницу

Переводы статьи Переводы статьи
Код статьи: 818612 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

С помощью создания COM-объект однопотокового апартамента (STA) Server.CreateObject, и затем сохранить этот STA COM-объект в области действия сеанса. Если вы используете этот STA COM-объекта из другой веб-странице, появляется следующее сообщение об ошибке:
Невозможно использовать COM-объект, который был отделен от своего RCW

Решение

Важные Данное исправление предназначено.NET Framework пакетом обновления 2.

Как получить исправление

Эта проблема исправлена в июне 2003 ASP.NET исправление 1.1. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
821156 INFO: ASP.NET 1.1 пакета исправлений для июня 2003 г.
Это исправление не может получить по отдельности. Вы должны Установите накопительный пакет.

Примечание При запросе данного исправления получения обновлений.

Английская версия данного исправления содержит версии файлов (или более поздней версии), приведенные в следующей таблице. Дата и время для файлов указаны в формате общего скоординированного времени (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

Это исправление также доступно для немецкой версии Microsoft.NET Framework 1.0. Это исправление также доступно для французской версии Microsoft.NET Framework 1.0.

Если применить исправление, описанное в данной статье для Microsoft ASP.NET состав.NET Framework версии 1.0, и если обновление до Microsoft ASP.NET состав.NET Framework 1.1, применить исправления к следующей статье Microsoft Knowledge Base:
821156 INFO: ASP.NET 1.1 пакета исправлений для июня 2003 г.
Кроме того при обновлении до.NET Framework 1.1 и возникают неполадки в данной статье, применить исправление из статьи базы знаний Майкрософт.

Статус

Корпорация Майкрософт подтверждает, что это проблема в продуктах Microsoft, перечисленных в разделе «Относится к».

Дополнительная информация

При создании объекта STA, используя Server.CreateObject (Атрибут AspCompat = «true»), объект можно использовать только в Веб-страницу, созданную для. Если сохранить объект в области сеанса и повторите попытку получить доступ к нему из различные веб-страницы появляется сообщение об ошибке.

Кроме того при реализации OnStartPage метод и OnEndPage метод из объект вашего COM STA, эти методы не вызываются для объекта на второй веб-странице.

Действия по воспроизведению проблемы

  1. Используйте следующий код для создания объекта Microsoft Visual Basic 6.0 COM, который имеет AspEventProblem.Class1 для Идентификатор progId:
    Public Function Test() As String
           Test = "Hello from COM Object"
    End Function
  2. С помощью Microsoft Visual Basic.NET для создания нового веб-приложения.
  3. Создание веб-форму с именем WebForm1.aspx.
  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 содержащий Следующий образец кода:
    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 - Последний отзыв: 14 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft .NET Framework 1.0
Ключевые слова: 
kbhotfixserver kbqfe kbnetframe100presp3fix kbfix kbbug kbmt KB818612 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:818612

Отправить отзыв

 

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