연결되어 있거나 연결되지 않은 원격 클라이언트에서 메시지를 대기시킬 수 있는지 테스트하려는 경우 해당 클라이언트가 인터넷을 통해 msmq로 보낸 메시지를 밀어 넣습니다. IIS 6에서 호스팅됩니다.IIS 6에서 MSMQ 호스팅 및 WCF를 통해 메시지 보내기
이제 IIS2005를 호스팅하는 server2003에서 MSMQ를 설정했습니다. 이 작업을 마친 후에는 "MSMQ"가 IIS 기본 웹 사이트에 나타납니다.
그렇다면 컴퓨터 관리 -> 메시지 대기열을 통해 새로운 트랜잭션 개인 큐를 추가했습니다.
내가 원하는 것은 메시지 스택을 보는 것입니다.이 작업을 마친 후 처리해 드리겠습니다. ,
<configuration>
<system.serviceModel>
<client>
<endpoint
address="net.msmq://**.**.***.228/private/MarksTestHttpQueue"
binding="netMsmqBinding"
bindingConfiguration="srmpBinding"
contract="HttpMsmqBridgeLibrary.IHttpMsmqBridgeContract">
</endpoint>
</client>
<bindings>
<netMsmqBinding>
<binding name="srmpBinding"
queueTransferProtocol="Srmp">
<security mode="None"/>
</binding>
</netMsmqBinding>
</bindings>
</system.serviceModel>
</configuration>
는 IP가 작동하는 내 공개 직면 IP입니다 :
using (var contract = new HttpMsmqBridgeProxy())
{
var valueToSend = 2456;
contract.TestFunction(valueToSend);
Console.WriteLine("value sent: " + valueToSend + "\r\n");
}
여기에이 클라이언트의의 app.config가있다 :
지금, 나는 다음과 같은 코드가 클라이언트 응용 프로그램을 만든 나는 wcf 서비스 또는 웹 페이지를 잘 호스팅 할 수 있습니다. 나는 srmpBinding을 사용하기 위해이 안내서를 따라 갔다. I 앱이 성공할입니다 실행할 때
http://msdn.microsoft.com/en-us/library/aa395217.aspx
그래서, 짧은에 무슨 일이 내 클라이언트의 메시지 큐에 가서 새로운 큐가 보내는 폴더에 게재 될, 그것은 보낸 나에게 말한다, 발생 전화 :
직접 : http : // .. * .228/msmq/private $/MarksTestHttpQueue
이 큐에서 보내는 메시지가 없으므로 메시지를 보낸 것으로 간주합니다.
지금 winserver2003에서 내 msmq를 보면 대기중인 대기중인 메시지가 없습니다.
ETA :
var queue = new MessageQueue("FormatName:DIRECT=http://**.**.***.228/msmq/private$/nonTransQueue");
System.Messaging.Message Msg;
Msg = new System.Messaging.Message();
Msg.Formatter = new ActiveXMessageFormatter();
Msg.Body = "Testing";
queue.Send(Msg);
메시지
합니다 (system32를/MSMQ/매핑 디렉토리에있는 매핑 파일을 변경 후) 표시 잘 : 나는 고전 MessageQueue가의 implimintation를 사용하여 비 트랜잭션 큐에 메시지를 보낼 수 있습니다 . IIS6 때문에 net.msmq 바인딩을 사용하여 보낼 수 없게되는지 궁금합니다.
HTTP를 통해 트랜잭션 대기열로 보내는 경우 보낸 사람은 대상에서 보낸 ACK 메시지를 수신하기 위해 로컬로 설치된 HTTP 지원이있는 MSMQ가 필요합니다. 비 트랜잭션 큐로 보내는 것은 그렇지 않습니다. –