jobsServer:在Windows Server 2008 R2 .NET版本:4.5WCF遠程MSMQ - 我可以寫一個遠程隊列,但不能接收
我使用WCF連接兩臺服務器 - 應用和隊列。我想要應用程序能夠發送/接收來自隊列的消息。出於某種原因,應用可以發送消息,但無法接收它們。
的netMsmq結合的模樣:
<binding name="JobExecutionerBinding" receiveErrorHandling="Move">
<security>
<transport msmqAuthenticationMode="None" msmqProtectionLevel="None" />
</security>
</binding>
與服務綁定的樣子:
現在,客戶端綁定的樣子:
<endpoint address="net.msmq://queue/private/jobs"
binding="netMsmqBinding"
bindingConfiguration="JobExecutionerBinding"
contract="JobExecution.Common.IJobExecutionService"
name="SimpleEmailService"
kind=""
endpointConfiguration=""/>
我改變了一些爲了安全起見,名字。
因此,WC客戶端可以發送到遠程隊列沒有問題。它甚至可以正確排隊傳出的消息,並在遠程隊列服務器關閉的情況下稍後轉發它。但每次啓動WCF服務時,我都會得到:
打開隊列時發生錯誤。確保安裝了MSMQ 並正在運行,該隊列已存在,並有適當的權限可從 中讀取。內部異常可能包含其他信息。 ---> System.ServiceModel.MsmqException:打開 隊列時發生錯誤:隊列不存在或您沒有足夠的 許可權執行操作。 (-1072824317,0xc00e0003)。無法從隊列發送或接收 消息。確保安裝並運行MSMQ 。還要確保隊列可用於以所需的訪問模式和授權打開 。在 System.ServiceModel.Channels.MsmqQueue.OpenQueue()在 System.ServiceModel.Channels.MsmqQueue.GetHandle()在 System.ServiceModel.Channels.MsmqQueue.SupportsAccessMode(字符串 FORMATNAME,的Int32存取類型,MsmqException & msmqException) - - 內部異常堆棧跟蹤的結尾 ---在 System.ServiceModel.Channels.MsmqVerifier.VerifyReceiver(MsmqReceiveParameters receiveParameters,烏里listenUri)在 System.ServiceModel.Channels.MsmqTransportBindingElement.BuildChannelListener [TChannel](的BindingContext 上下文)在 System.ServiceModel.Channels.Binding.BuildChannelListener [TChannel](Uri listenUriBaseAddress,String li stenUriRelativeAddress,ListenUriMode listenUriMode,BindingParameterCollection參數)在 System.ServiceModel.Description.DispatcherBuilder.MaybeCreateListener(布爾 actuallyCreate,類型[] supportedChannels,裝訂裝訂, BindingParameterCollection參數,烏里listenUriBaseAddress, 字符串listenUriRelativeAddress,ListenUriMode listenUriMode, ServiceThrottle油門,IChannelListener &結果,布爾 supportContextSession)在 System.ServiceModel.Description.DispatcherBuilder。BuildChannelListener在 System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription 描述,ServiceHostBase ServiceHost的)(StuffPerListenUriInfo 東西,ServiceHostBase ServiceHost的,烏里listenUri,ListenUriMode listenUriMode,布爾supportContextSession,IChannelListener & 結果)在 System.ServiceModel.ServiceHostBase .InitializeRuntime()
我已經遍佈了8個小時的StackOverflow和互聯網。下面是我做了什麼:
- 確保了匿名登錄,每個人,網絡,網絡服務和本地服務擁有完全控制
- 停止遠程MSMQ服務器和觀察到的WCF服務做什麼,我也得到不同的錯誤 - 所以我敢肯定,當啓動WCF服務說話的MSMQ服務器
- 禁用Windows防火牆在兩個盒子,並通過EC2安全組
- 集AllowNonauthenticatedRpc和NewRemoteReadServerAllowNoneSecurityClient在打開的所有端口1註冊表
- 在兩臺服務器上都配置了MS DTC(隊列是事務性的,但無論隊列是否事務性,我都會得到相同的錯誤)
- 確認WCF服務器啓動正常,如果我使用本地隊列並接收沒有問題
幫助!!!如果沒有遠程排隊解決方案,我無法擴展應用程序。
使用服務器名稱時出現此錯誤。當使用IP時,我沒有收到錯誤,但是我沒有成功從遠程專用隊列讀取數據。 – Hadas 2013-03-04 10:05:36
我有類似的配置,但我沒有通過網絡伸出同樣的問題。 「app」可以寫入隊列(這是本地的),但不能從它接收(即使它是本地的)。我不相信網絡連接本身與問題有任何關係。 – 2013-11-14 21:04:20