블로그 게시물에 꽤 비슷한 방식으로 설정 한 항목이 있지만 대기열 중 하나에 대해 시작할 때 오류가 발생합니다.왜 Rhino.ServiceBus가 자동으로 모든 대기열을 생성하지 않습니까?
msmq://localhost/colin_console_queue
은 내 프로그램에서 자동으로 생성되지 않습니다.
저는 제대로 된 일을하지 않고 있지만 생략 한 부분을 알지 못한다고 확신합니다.
'DisableAutoQueueCreation'속성을 발견했는데 다양한 구성 요소에서 false로 설정하려고 시도했지만 RhinoServiceBusFacility
의 속성으로 사용할 수 있음을 발견했기 때문에 설정도 시도했습니다. 불행히도 그 중 아무 것도 작동하지 않는 것 같았습니다.
두 큐를 동일한 큐로 가리 키도록 변경하면 기본적으로 응용 프로그램이 작동하지만, 내가하는 일이 아니라는 것이 확실합니다. Starbucks 예제 응용 프로그램을 보면서 코드에서 하드 코드 된 경로를 사용하여 많은 설정을 수행하는 것처럼 보입니다.
<facilities>
<facility id="rhino.esb">
<bus threadCount="1" numberOfRetries="5" endpoint="msmq://localhost/colin_console_queue_bus"
logEndpoint="msmq://localhost/colin_console_queue_bus.log" />
<messages>
<add name="ConsoleApplication1" endpoint="msmq://localhost/colin_console_queue" />
</messages>
</facility>
</facilities>
여기 내 테스트 프로그램을 사용하여 큐를 사용하는 방법을 알아 냈습니다. 여기
static void Main(string[] args)
{
var container = new WindsorContainer(new XmlInterpreter());
container.Kernel.AddFacility("rhino.esb", new RhinoServiceBusFacility());
if (args.Length > 0)
{
var bus = container.Resolve<IStartableServiceBus>();
bus.Start();
bus.Send(new EmailMessage { Message = args[0], To = "test" });
bus.Dispose();
}
else
{
container.Register(AllTypes.FromAssembly(Assembly.GetExecutingAssembly()).BasedOn(typeof(IMessageConsumer)));
var bus = container.Resolve<IStartableServiceBus>();
bus.Start();
Console.ReadLine();
Console.WriteLine("Bus stopped");
bus.Dispose();
}
}
는 큐잉 서버의 구성을 메시지 큐와 인프라 ccentral 같은 무언가에 대한 관리 조치를하지 말아야 일반적인 웹 응용 프로그램에서 내가 오류,
Unhandled Exception: System.Transactions.TransactionException: Failed to send message to Uri: msmq://colin-pc/colin_console_queue ---> Rhino.ServiceBus.Exceptions.TransportException: The queue msmq://colin-pc/colin_console_queue does not exists
at Rhino.ServiceBus.Msmq.OpenedQueue..ctor(QueueInfo info, MessageQueue queue, String url, Nullable`1 transactional) in D:\Work\rhino-esb\Rhino.ServiceBus\Msmq\OpenedQueue.cs:line 24
at Rhino.ServiceBus.Msmq.QueueInfo.Open(QueueAccessMode access, IMessageFormatter formatter) in D:\Work\rhino-esb\Rhino.ServiceBus\Msmq\QueueInfo.cs:line 71
at Rhino.ServiceBus.Msmq.QueueInfo.Open(QueueAccessMode access) in D:\Work\rhino-esb\Rhino.ServiceBus\Msmq\QueueInfo.cs:line 63
at Rhino.ServiceBus.Msmq.MsmqTransport.SendMessageToQueue(Message message, Endpoint endpoint) in D:\Work\rhino-esb\Rhino.ServiceBus\Msmq\MsmqTransport.cs:line 303
죄송합니다. 웹 사이트에서 대기열을 구성하지 않으려 고합니다. 그게 내가하고있는 일에 대한 불필요한 '배경'정보 였어. 그래서 나는 질문에서 그것을 제거했다. –