你目前正处于脱机状态,正在等待 Internet 重新连接

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 SubButton1_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

警告:本文已自动翻译

属性

文章 ID:818612 - 上次审阅时间:12/08/2015 02:32:21 - 修订版本: 5.2

Microsoft .NET Framework 1.0

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbnetframe100presp3fix kbfix kbbug KB818612 KbMtzh
反馈