Атрибут ServiceBehaviour позволяет указать поведение. В вашем случае для одного потока вы бы использовали следующее:
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single, InstanceContextMode = InstanceContextMode.PerCall)]
public class Service : IService
{
}
Вы , возможно, захотите прочитать о различных InstanceContextMode
s, чтобы помочь вам лучше выбрать, как вы хотите, чтобы сервис работал.
Вам также необходимо добавить к вашему app.config
новое служебное поведение (или отредактировать существующее):
<behavior name="wsSingleThreadServiceBehavior">
<serviceThrottling maxConcurrentCalls="1"/>
</behavior>
и в вашей конфигурации поведения в том же app.config
установите поведенческую конфигурацию следующим образом:
<service behaviorConfiguration="wsSingleThreadServiceBehavior" name="IService">
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="wsEndpointBinding" name="ConveyancingEndpoint" contract="IService" />
</service>
Надеюсь, это сэкономит вам время