ASP.NET、IIS和COM

ASP.NET、IIS和COM,asp.net,iis,com,Asp.net,Iis,Com,我对COM不太熟悉,希望有人能帮助验证我下面的内容是否正确 如果我有两个完全独立的请求(请求1和请求2),那么这将创建我的WebApplication的两个独立实例。到目前为止很无聊 如果每个实例随后都与相同的web服务联系,则假定web服务的两个实例也被实例化 这就是它变得有趣的地方 这些web服务创建一个.NET程序集,然后该程序集引用进程内(通过regsvr32注册)COM dll(通过互操作) 我的图表正确吗 这个COM-DLL连接到数据库,执行查询,将数据返回给web服务,然后web

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

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

如果每个实例随后都与相同的web服务联系,则假定web服务的两个实例也被实例化

这就是它变得有趣的地方

这些web服务创建一个.NET程序集,然后该程序集引用进程内(通过regsvr32注册)COM dll(通过互操作)

我的图表正确吗

这个COM-DLL连接到数据库,执行查询,将数据返回给web服务,然后web服务将JSON格式的数据返回给客户端。一切都完成了


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

作为一种逻辑模式似乎还可以。但是,一如既往。魔鬼在细节中

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

关于“这在性能方面是否合适?”,如果您的COM组件是STA(如果它是在VB6.0中创建的,那么它将是STA),那么您必须进行一些线程解纠缠(否则,您的所有服务请求都将排队,并且在负载下性能会变得更差。)

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

…和解决方案如果您使用WCF服务