title: Unable to load DLL 'mqrt.dll'
body: <p>I've developed a WCF Service which is hosted as a Windows Service and exposes a MSMQ endpoint.</p>
  
  <p>I have the client app on SERVER1, and the MSMQ and WCF Service on SERVER2.</p>
  
  <p>When the SERVER1/ClientApp attempts to push a message on to the SERVER2 MSMQ, I get the following errror:</p>
  
  <pre><code>    System.TypeInitializationException: The type initializer for 'System.ServiceModel.Channels.Msmq' threw an exception. ---&gt; System.DllNotFoundException: Unable to load DLL 'mqrt.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
         at System.ServiceModel.Channels.UnsafeNativeMethods.MQGetPrivateComputerInformation(String computerName, IntPtr properties)
         at System.ServiceModel.Channels.MsmqQueue.GetMsmqInformation(Version&amp; version, Boolean&amp; activeDirectoryEnabled)
         at System.ServiceModel.Channels.Msmq..cctor()
         --- End of inner exception stack trace ---
         at System.ServiceModel.Channels.Msmq.EnterXPSendLock(Boolean&amp; lockHeld, ProtectionLevel protectionLevel)
         at System.ServiceModel.Channels.MsmqOutputChannel.OnSend(Message message, TimeSpan timeout)
         at System.ServiceModel.Channels.OutputChannel.Send(Message message, TimeSpan timeout)
         at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
         at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
         at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
  
  Exception rethrown at [7]: 
     at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
     at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp; msgData, Int32 type)
     at FacilityManager.Service.NotificationsProcessorServiceReference.INotificationsProcessor.SendNewReactiveTaskNotifications(NewReactiveTaskDataContract newReactiveTaskDataContract)
  </code></pre>
  
  <p>Both SERVER1 and SERVER2 are running Windows Server 2008 R2 Enterprise (6.1 SP1), and both have had MSMQ installed via the Add Features in Server Manager.</p>
  
  <p>I understand that the DLL is missing (fairly obvious from the error!), but I've no idea what I should be installing to get the dll where it should be.</p>
  
  <p>A search in Windows Explorer shows that the DLL is present in the following directories on both servers....</p>
  
  <ul>
  <li>C:\Windows\System32</li>
  <li>C:\Windows\SysWOW64</li>
  <li>C:\Windows\winsxs\x86_microsoft-windows-msmq-runtime-core_31bf3856ad364e35_6.1.7601.17514_none_5768e2ad17453bd6</li>
  <li>C:\Windows\winsxs\amd64_microsoft-windows-msmq-runtime-core_31bf3856ad364e35_6.1.7601.17514_none_b3877e30cfa2ad0c</li>
  </ul>
  
  <p>Any help appreciated.</p>