FIX:"COM 对象可以不使用"错误消息使用您创建使用 Server.CreateObject 的 STA COM 对象时,存储在不同 Web 页中的会话范围中

文章翻译 文章翻译
文章编号: 818612 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

通过使用 Server.CreateObject,创建一个单线程单元 (STA) COM 对象,然后将此 STA COM 对象存储在会话范围内。如果您使用此 STA COM 对象,另一个 Web 页中的,您会收到以下错误消息:
不能使用已被分开与其基础 RCW 的 COM 对象

解决方案

重要若要将此修补程序,您必须安装在.net Framework Service Pack 2。

如何获取此修复程序

此问题固定在 2003 年六月 ASP.NET 修补程序软件包 1.1。有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
821156信息: ASP.NET 1.1 2003 年六月修补程序汇总包
您不能单独获取此修复程序。您必须安装该汇总。

注意当您请求此修补程序时,您收到的总成型任务。

此修补程序的英文版具有文件属性 (或更高版本) 下表中列出。其格式为协调通用时间 (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

此修补程序也是可用的德语版的 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 知识库文章中应用此修补程序包执行以下操作:
821156信息: ASP.NET 1.1 2003 年六月修补程序汇总包
此外,如果您升级到.net Framework 1.1,并遇到了本文中的症状也应从这篇 Microsoft 知识库文章应用此修补程序包。

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

更多信息

如果您通过使用创建 STA 对象 Server.CreateObject (属性 AspCompat ="true"),您可以使用对象只在您创建它的网页中。如果您将该对象存储在会话范围,并且然后尝试访问它不同的 Web 页中您会收到错误消息。

此外,如果从 STA COM 对象中实现 OnStartPage 方法和 OnEndPage 方法调用这些方法不在您在第二个 Web 页中的对象上。

重现行为的步骤

  1. 使用下面的代码示例创建一个 AspEventProblem.Class1ProgId 的 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 窗体。
  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 窗体:
    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
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 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