我創建了一個WCF服務,該服務監聽專用MSMQ的作業。我扼殺了我的服務,以便它一次只能處理一個作業(maxConcurrentInstances = 1)。我遇到的問題是,當提交兩條消息並通過我的計算機管理控制檯檢查隊列時,它是空的。我希望有一個懸而未決的消息。當我提交三條消息時,我會在MSMQ中看到一條待處理消息。從閱讀MSDN看來,ServiceHost看起來像是將下一份作業保存在內存中,直到當前作業完成,但我無法找到一種方法將它關閉,以便它不會將消息保留在內存中。有誰知道一種方法可以使ServiceHost不會在內存中保留待處理消息並將其保留在隊列中?謝謝!WCF服務監聽器到MSMQ - 掛起的消息
<configuration>
<system.serviceModel>
<services>
<service
name="MyService"
behaviorConfiguration="DefaultServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/MyService/"/>
</baseAddresses>
</host>
<endpoint
address="net.msmq://localhost/private/MyService"
binding="netMsmqBinding" bindingConfiguration="MsmqBindingNoSecurity"
contract="IMyService" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="DefaultServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceThrottling
maxConcurrentCalls="1"
maxConcurrentSessions="1"
maxConcurrentInstances="1"
/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<netMsmqBinding>
<binding name="MsmqBindingNoSecurity"
useActiveDirectory="false"
exactlyOnce="false">
<security mode="None">
<transport
msmqAuthenticationMode="None"/>
</security>
</binding>
</netMsmqBinding>
</bindings>
</system.serviceModel>
</configuration>
這是我在計算器上的第一篇文章,所以我在這一個新手。讓我知道是否需要提供更多細節,或者我可以做些什麼來幫助社區回答我的問題。 – MrE