2012-11-05 34 views
1

標準設置我認爲。我主要關注:http://blogs.msdn.com/b/tomholl/archive/2008/07/12/msmq-wcf-and-iis-getting-them-to-play-nice-part-1.aspx,但根據需要使用其他來源。MSMQ + WCF,IIS7 - 郵件正在記錄,但從未打過服務

到目前爲止,這裏是發生了什麼:

  1. 客戶在日記郵件發送消息
  2. 我看到消息的合適的隊列中
  3. 服務似乎永遠不會被調用。我有很多日誌記錄會輸出服務調用日誌和/或服務方法中的錯誤。

我已關閉服務,郵件仍然在日誌消息中結束 - 不知道爲什麼。

隊列:bretrace/bretraceservice.svc(匿名訪問,已授予完全權限)

客戶的Web.config

<netMsmqBinding> 
    <binding name="MsmqBreTrace" receiveErrorHandling="Move"> 
     <security mode="None" /> 
    </binding> 
</netMsmqBinding> 

<endpoint address="net.msmq://wcfserver/private/bretrace/bretraceservice.svc" binding="netMsmqBinding" 
    bindingConfiguration="MsmqBreTrace" name="MsmqBreTraceService" 
    contract="C.BusinessRuleController.Services.BoschProxy.Trace.IQueuingTraceContract"/> 

服務的Web.config

<bindings> 
    <netMsmqBinding> 
     <binding name="MsmqBreTraceReader" receiveErrorHandling="Move"> 
      <security mode="None" /> 
     </binding> 
    </netMsmqBinding> 
</bindings> 
<services> 
    <service name="C.BusinessRuleController.Services.QR.BreTraceService"> 
     <endpoint address="" 
      binding="netMsmqBinding" bindingConfiguration="MsmqBreTraceReader" 
      contract="C.BusinessRuleController.Services.BoschProxy.Trace.IQueuingTraceContract" /> 
    </service> 
</services> 

我也啓動system.diagnostics,它似乎是調用服務,在我看到的活動下:

  • 「流程操作:'http://tempuri.org/IQueuingTraceContract/LogTrace'。」 我不確定tempuri.org是否有問題?
  • 「執行C.BusinessRuleController ...」作爲另一項活動。

+0

您是否啓用了端到端跟蹤? http://technet.microsoft.com/en-us/library/cc730882.aspx –

+0

我已經啓用它 - 但我真的無法制作它的正面或反面。我有3個事件 - 消息通過網絡(事件ID 4)消息放入隊列(事件ID 1)和消息接收(事件ID 2)。我看不到這顯示哪些服務正在接收消息 – Prescott

+0

如果每條消息有三個事件,這通常表示一切正常。你有沒有想過使用事務隊列? –

回答

0

幾件事情解決了這個問題對我來說:

首先,我必須設置安全模式=「交易」在綁定

<netMsmqBinding> 
    <binding name="MsmqBreTrace" receiveErrorHandling="Move"> 
     <security mode="Transactional" /> 
    </binding> 
</netMsmqBinding> 

其次,我不得不安裝MSMQ Active Directory集成 - 我沒不必實際啓用它,但即使未使用它也必須安裝。這是最讓我感動的,我不想要AD Integration,所以我覺得我並不需要它。原來我錯了。