ASP.NET、IIS 和 COM

标签 asp.net iis com

我对 COM 不太熟悉,希望有人能够帮助验证我下面的内容是否正确。

如果我有两个完全独立的请求(请求 1 和请求 2),那么这会创建我的 WebApplication 的两个独立实例。到目前为止还很无聊。

如果每个实例随后联系相同的 Web 服务,则可能还会实例化该 Web 服务的两个实例。

这就是有趣的地方。

这些 Web 服务创建一个 .NET 程序集,然后引用进程内(通过 regsvr32 注册)COM-dll(通过 Interop)。

我的图表正确吗?

alt text

此 COM-DLL 连接到数据库,执行查询,将数据返回到 Web 服务,然后 Web 服务将 JSON 数据返回到客户端。全部完成 AJAXy。

我的另一个问题是 - 这在性能方面可以吗?我不明白为什么它不应该扩展,并且能够将数据返回给用户

最佳答案

作为逻辑模式似乎没问题。但是,一如既往。魔鬼在于细节。

这一切都取决于 COM 组件的服务使用的实现,特别是 COM 组件对线程的处理。如果您的 COM 组件是线程安全的并标记为使用 MTA(多线程单元),那么您应该没问题。然而,许多 COM 对象被标记为 STA(因此使用单线程单元)

关于“这在性能方面可以吗?”,那么如果您的 COM 组件是一个 STA(如果它是在 VB 6.0 中创建的,则将是),您将必须进行一些线程整理(否则所有您的服务请求将排队,并且在负载下性能会变得更差。)

本文解释了问题和解决方案(针对 ASMX 服务)...

http://msdn.microsoft.com/en-us/magazine/cc163544.aspx

..以及解决方案(如果您使用的是 WCF 服务)...

http://blogs.catalystss.com/blogs/scott_seely/archive/2007/09/27/203.aspx

关于ASP.NET、IIS 和 COM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/829601/

相关文章:

php - 在 IIS 中显示 PHP 错误

.net - 使用 WiX 安装程序复制 Visual Studio COM 注册

php - COM 无法在 IIS PHP 版本 7.2.9 中工作

security - 应用程序池身份、用户组和 iis 隔离

c# - IIS7 文件映射 - .asax、.ashx、.asap

c# - 通过 COM 包装器从托管代码调用 COM 可见托管组件

javascript - 获取 twitter 和 google plus 共享计数或任何替代

c# - 获取奇数长度字符串的中间三个字符

c# - ListView 控件中的 ASP.NET 更新面板未更新

javascript - ASP.NET WebForms 使用 jQuery v1.9.0 检查 GridView 中的所有复选框不起作用