Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ThreadingModel Free使WCF服务崩溃_Wcf_Com_Mta - Fatal编程技术网

ThreadingModel Free使WCF服务崩溃

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对象的非单例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)]


COM对象是静态/全局的

看来我可能有答案了。以防其他人遇到类似的谜团。旧版本仅为STA,互操作设置为嵌入。此外,还更改了一种方法的原型。从嵌入式互操作中提取的部分似乎与COM本身发生了冲突

一旦我将设置更改为“否”并重新编译所有内容,它就会变得正常