0
votes

I have a WCF service with MSMQ bindings and It's working fine. Whenever any message comes into the MSMQ Queue at that time. It is processing queues and message are removed from the queue. But its not calling operation contract and I am not getting information about message.

Is there any way to have your operation contract called directly or is there another way?. I am hosting wcf services in WAS and MSMQ and following is my web.config settings.

<system.serviceModel>
  <bindings>
      <netMsmqBinding>
          <binding name="WCFQNonTransactional" exactlyOnce="false">
              <security mode="None"/>
          </binding>
      </netMsmqBinding>
  </bindings>
  <services>
      <service behaviorConfiguration="MyWCFService.MSMQReceiverServiceBehavior" name="MyWCFService.MSMQReceiverService">
          <endpoint address="http://localhost:90/MSMQReceiverService.svc"
                    binding="wsHttpBinding"
                    contract="MyWCFService.IMSMQReceiverService" name="mymsmq">
              <identity>
                  <dns value="localhost" />
              </identity>
          </endpoint>

          <endpoint address="net.msmq://localhost/private/Mywcfservice/msmqreceiverservice.svc"
                    binding="netMsmqBinding" bindingConfiguration="WCFQNonTransactional"
                    contract="MyWCFService.IMSMQReceiverService" />
      </service>
  </services>
  <behaviors>
      <serviceBehaviors>
          <behavior name="MyWCFService.MSMQReceiverServiceBehavior">
              <serviceMetadata httpGetEnabled="true"/>
              <serviceDebug includeExceptionDetailInFaults="false"/>
          </behavior>
      </serviceBehaviors>
  </behaviors>

1
Queue permissions, deserialization errors. transactional queues? Windows 7 ?Kiquenet

1 Answers

0
votes

If the operation contract is not being called this means there is a problem taking the message off the queue. Your operation code should be called for each message taken off the queue.

Firstly, make sure you are using transactional queues, because if you're not any errors will cause the message to be lost.

Secondly enable journalling on the client and server bindings and you will be able to trace the messages through.