ThreadingModel Free使WCF服务崩溃
我有一个运行一些COM对象的非单例WCF(独立)服务。在非WCF环境中,使用Thread.Start,这些COM对象在不同的线程中愉快地并行运行,使用所有CPU并在几乎相同的时间内完成 然而,当我尝试在特定的WCF服务中使用它们时,事情变得很奇怪 当registry中的ApartmentState设置为“两者”时,WCF工作,但任务似乎是串行的,等待彼此完成。CPU使用量从不超过1个CPU的份额。这是因为它被迫在STA中运行 当注册表中的ApartmentState设置为Free时,它会崩溃 我就是不明白。这是某种管道堵塞了吗 我的WCF服务类具有以下属性: [ServiceBehavior(AddressFilterMode=AddressFilterMode.Any,InstanceContextMode=InstanceContextMode.PerCall,ConcurrencyMode=ConcurrencyMode.Single)]ThreadingModel Free使WCF服务崩溃,wcf,com,mta,Wcf,Com,Mta,我有一个运行一些COM对象的非单例WCF(独立)服务。在非WCF环境中,使用Thread.Start,这些COM对象在不同的线程中愉快地并行运行,使用所有CPU并在几乎相同的时间内完成 然而,当我尝试在特定的WCF服务中使用它们时,事情变得很奇怪 当registry中的ApartmentState设置为“两者”时,WCF工作,但任务似乎是串行的,等待彼此完成。CPU使用量从不超过1个CPU的份额。这是因为它被迫在STA中运行 当注册表中的ApartmentState设置为Free时,它会崩溃 我
COM对象是静态/全局的 看来我可能有答案了。以防其他人遇到类似的谜团。旧版本仅为STA,互操作设置为嵌入。此外,还更改了一种方法的原型。从嵌入式互操作中提取的部分似乎与COM本身发生了冲突 一旦我将设置更改为“否”并重新编译所有内容,它就会变得正常