IIS和COM +分区:由于COM分区ID无效或丢失,无法创建ASP Application XXX

时间:2013-07-31 09:17:28

标签: iis com+

我有一个使用COM +组件的应用程序。我试图让这个应用程序在IIS中的多个应用程序上工作。每个应用程序都有自己的应用程序池这就是为什么我需要为每个应用程序分离一个COM +组件。隔离COM +应用程序的一种方法是使用COM +分区。

我在Windows Server 2008 R2服务器上的组件服务管理工具中创建了分区。我创建了分区,并在每个分区中创建了一个COM +应用程序。 在IIS中,我有单独的网站在不同的应用程序池中运行。我将每个网站配置为使用分区,并为其分配存在的分区GUID。 在我使用分区guid设置IIS后,我启用它来使用分区,然后在IISRESET之后,我在浏览器中运行网站,并收到HTTP 500内部服务器错误。我查看了事件查看器,这是错误消息:由于COM分区ID无效或丢失而无法创建ASP应用程序XXX

如果我在组件服务管理工具中禁用分区并禁用IIS中的分区使用,则应用程序可以正常工作。 我需要能够使用分区来允许多个网站与这些COM +对象同时运行。

1 个答案:

答案 0 :(得分:1)

经过对此主题的大量研究后,我找到了解决方案:不要使用IIS中的PartitionId,也不要从IIS启用分区。将它们保留为默认值。

解决方案如下:每个分区应分配为一个用户的默认分区,每个IIS应用程序(以及每个应用程序池)应在默认分区使用的相同用户上运行。 所以基本上如果你有两个IIS应用程序名为:web1和web2,以及两个应用程序池:app1和app2,两个用户user1和user2以及两个分区:part1和part2。 web1应该在user1下运行,app1也应该在user1下运行(app1是web1的应用程序池)。然后在组件服务中,user1应该具有默认分区:part1。然后,当web1将搜索COM +组件时,它将首先尝试在分配给该IIS应用程序的用户的分区中搜索它:user1。 User1具有默认分区part1,因此它将找到它。

提示:要在Windows Server 2008 R2上启用com +分区,请转到组件服务>我的电脑>右键单击它>属性>选项标签>选中启用分区以及另一个:在为用户选择分区时检查本地存储。 只能在Windows Server版本中启用分区。在Windows 7中禁用此选项,我找不到启用它的方法。

希望这有帮助。

不要忘记在每个分区下添加COM +应用程序,并在那里添加用户,以便用户可以访问它们。因此,在“分区角色”中以及“组件服务中的”我的电脑“下的”COM +分区用户“目录中添加用户。