我有一个使用 WCF 编写的文件传输服务。它接收客户端发送的文件。客户端反过来使用 FileStream + MessageContract 跨文件发送。我使用以下属性将 WCF 文件传输服务设置为单例
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Multiple)]
我尝试在客户端本身中使用多个线程。每个线程创建一个 channelfactory + proxy.CreateChannel 的实例,并通过一个不同的文件发送给服务。我在服务端没有任何锁,它一次只允许传输一个文件,在客户端也没有。该代码是一种没有状态持久性的直通代码。
我面临的问题是,因此我没有看到多个线程尝试发送多个文件。每次我尝试使用多个线程传输多个文件时,服务类型都不接受同一实例中的多个文件。这导致文件被顺序传输而不是并行传输。我觉得从客户端发送了文件,但在服务端它只是被阻止了。
我尝试使用 ServiceThrottling 属性,但仍然没有发现任何区别。我做错了什么还是这种方法无效?
一个客户端只能通过一个通道发送一个文件?许多线程不能将许多文件发送到同一个服务吗?有人可以帮帮我吗。
谢谢桑迪普