2009-07-18 90 views
1

我有使用net.msmq協議的wcf服務,但服務無法激活並出現以下錯誤。什麼可能是錯的?wcf msmq服務激活失敗

看起來它試圖找到機器或AD中的東西,但爲什麼? 服務隊名如同net.msmq://localhost/private/myservice.svc

A connection with Active Directory cannot be established. Verify that there are sufficient permissions to perform this operation. 

System.Messaging.MessageQueue.GetMachineId(String machineName) 
System.Messaging.MessageQueueCriteria.set_MachineName(String value) 
System.Messaging.MessageQueue.GetPublicQueuesByMachine(String machineName) 
System.ServiceModel.Channels.MsmqBindingMonitor.OnTimer(Object state) 
+0

確認我沒有連接到廣告,但應用程序不會是要麼是廣告是不需要的。 – mamu 2009-07-18 19:52:33

回答

2

你有什麼安全設置?默認情況下,MSMQ綁定將期望用戶提供證書以對其進行身份驗證,並需要訪問AD以驗證該證書。

如果要完全關閉所有的安全,這個段添加到您的配置:

<bindings> 
    <netMsmqBinding> 
    <binding name="NoSecurity"> 
     <security mode="off" /> 
    </binding>  
    </netMsmqBinding> 
</bindings> 
<endpoint name="...." address="..." contract="....." 
    binding="netMsmqBinding" bindingConfiguration="NoSecurity" /> 

這樣的話,你應該能夠調用MSMQ得不到AD。

馬克

+0

感謝您的回答 – mamu 2009-07-25 15:16:24

1

也許它需要與AD進行檢查,能夠寫入到消息隊列。

如果您在無法訪問AD的本地帳戶下運行,則可能會出現此錯誤。

1

當我WCF服務由運行作爲本地系統或網絡服務帳戶Windows服務託管我有這個錯誤。將Windows服務更改爲在交互式登錄帳戶下運行(如我自己的帳戶或我創建的僅用於託管MSMQ-WCF Windows服務的帳戶)可以消除此問題。

我相信錯誤與WCF無關,而是服務沒有交互式登錄,可以自動檢索允許WCF代碼與MSMQ通信的AD證書。