MessageQueue.Path-Eigenschaft
Ruft den Pfad der Warteschlange ab oder legt diesen fest. Nach dem Festlegen des Path zeigt die MessageQueue auf eine neue Warteschlange.
Namespace: System.Messaging
Assembly: System.Messaging (in system.messaging.dll)
Syntax
'Declaration
Public Property Path As String
'Usage
Dim instance As MessageQueue
Dim value As String
value = instance.Path
instance.Path = value
public string Path { get; set; }
public:
property String^ Path {
String^ get ();
void set (String^ value);
}
/** @property */
public String get_Path ()
/** @property */
public void set_Path (String value)
public function get Path () : String
public function set Path (value : String)
Eigenschaftenwert
Die Warteschlange, auf die die MessageQueue verweist. Die Standardeinstellung hängt vom verwendeten MessageQueue-Konstruktor ab. Sie ist entweder NULL (Nothing in Visual Basic), oder sie wird durch den path-Parameter des Konstruktors angegeben.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Der Pfad ist ungültig. Möglicherweise wurde eine falsche Syntax verwendet. |
Hinweise
Die Syntax für die Path-Eigenschaft richtet sich nach dem Typ der Warteschlange, auf die gezeigt wird, wie in der folgenden Tabelle dargestellt.
Warteschlangentyp |
Syntax |
---|---|
Öffentliche Warteschlange |
MachineName\QueueName |
Private Warteschlange |
MachineName\Private$\QueueName |
Journalwarteschlange |
MachineName\QueueName\Journal$ |
Journalwarteschlange des Computers |
MachineName\Journal$ |
Dead Letter-Warteschlange des Computers |
MachineName\Deadletter$ |
Transaktionale Dead Letter-Warteschlange des Computers |
MachineName\XactDeadletter$ |
Verwenden Sie "." für den lokalen Computer.
Die MachineName-Eigenschaft, die Path-Eigenschaft und die QueueName-Eigenschaft hängen zusammen. Wenn die MachineName-Eigenschaft geändert wird, ändert sich damit auch die Path-Eigenschaft. Sie wird aus den neuen Werten des MachineName und des QueueName erstellt. Wenn der Path geändert wird, um beispielsweise die Syntax für den Formatnamen zu verwenden, werden die MachineName-Eigenschaft und die QueueName-Eigenschaft zurückgesetzt, sodass sie auf die neue Warteschlange verweisen.
Sie können den Warteschlangenpfad auch mithilfe des FormatName oder Label beschreiben, wie in der folgenden Tabelle dargestellt.
Verweis |
Syntax |
Beispiel |
---|---|---|
Formatname |
FormatName: [ format name ] |
FormatName:Public= 5A5F7535-AE9A-41d4-935C-845C2AFF7112 |
Bezeichnung |
Label: [ label ] |
Label: TheLabel |
Wenn Sie beim Senden der Meldung für die Path-Eigenschaft die Bezeichnungssyntax verwenden, wird bei einem nicht eindeutigen Label eine Ausnahme ausgelöst.
Um offline zu arbeiten können, müssen Sie die Syntax für den Formatnamen anstelle der Syntax für den angezeigten Namen aus der ersten Tabelle verwenden. Andernfalls wird eine Ausnahme ausgelöst, da der primäre Domänencontroller (auf dem sich Active Directory befindet) nicht zur Auflösung des Pfades in den Formatnamen zur Verfügung steht.
Beim Festlegen eines neuen Pfades wird die Meldungswarteschlange geschlossen, und alle Handles werden freigegeben.
Der folgenden Tabelle können Sie entnehmen, ob diese Eigenschaft in verschiedenen Arbeitsgruppenmodi verfügbar ist.
Arbeitsgruppenmodus |
Verfügbar |
---|---|
Lokaler Computer |
Ja |
Lokaler Computer + direkter Formatname |
Ja |
Remotecomputer |
Ja |
Lokaler Computer + direkter Formatname |
Ja |
Hinweis zu Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows CE: Da Active Directory auf Geräten nicht unterstützt wird, kann .NET Compact Framework nicht feststellen, ob eine Remotewarteschlange transaktional ist. Um eine Meldung an eine Remotetransaktionswarteschlange zu senden, fügen Sie ;XACTONLY an die Path-Eigenschaft an. Weitere Informationen finden Sie unter MSMQ in .NET Compact Framework.
Beispiel
Im folgenden Codebeispiel werden neue MessageQueue-Objekte erstellt, wobei Pfadnamen in unterschiedlicher Syntax angegeben werden. In allen Fällen wird eine Meldung an die Warteschlange gesendet, deren Pfad im Konstruktor angegeben wurde.
Imports System
Imports System.Messaging
Public Class MyNewQueue
' Provides an entry point into the application.
'
' This example demonstrates several ways to set
' a queue's path.
Public Shared Sub Main()
' Create a new instance of the class.
Dim myNewQueue As New MyNewQueue()
myNewQueue.SendPublic()
myNewQueue.SendPrivate()
myNewQueue.SendByLabel()
myNewQueue.SendByFormatName()
myNewQueue.MonitorComputerJournal()
myNewQueue.MonitorQueueJournal()
myNewQueue.MonitorDeadLetter()
myNewQueue.MonitorTransactionalDeadLetter()
Return
End Sub 'Main
' References public queues.
Public Sub SendPublic()
Dim myQueue As New MessageQueue(".\myQueue")
myQueue.Send("Public queue by path name.")
Return
End Sub 'SendPublic
' References private queues.
Public Sub SendPrivate()
Dim myQueue As New MessageQueue(".\Private$\myQueue")
myQueue.Send("Private queue by path name.")
Return
End Sub 'SendPrivate
' References queues by label.
Public Sub SendByLabel()
Dim myQueue As New MessageQueue("Label:TheLabel")
myQueue.Send("Queue by label.")
Return
End Sub 'SendByLabel
' References queues by format name.
Public Sub SendByFormatName()
Dim myQueue As New _
MessageQueue("FormatName:Public=" + _
"5A5F7535-AE9A-41d4-935C-845C2AFF7112")
myQueue.Send("Queue by format name.")
Return
End Sub 'SendByFormatName
' References computer journal queues.
Public Sub MonitorComputerJournal()
Dim computerJournal As New MessageQueue(".\Journal$")
While True
Dim journalMessage As Message = _
computerJournal.Receive()
' Process the journal message.
End While
Return
End Sub 'MonitorComputerJournal
' References queue journal queues.
Public Sub MonitorQueueJournal()
Dim queueJournal As New _
MessageQueue(".\myQueue\Journal$")
While True
Dim journalMessage As Message = _
queueJournal.Receive()
' Process the journal message.
End While
Return
End Sub 'MonitorQueueJournal
' References dead-letter queues.
Public Sub MonitorDeadLetter()
Dim deadLetter As New MessageQueue(".\DeadLetter$")
While True
Dim deadMessage As Message = deadLetter.Receive()
' Process the dead-letter message.
End While
Return
End Sub 'MonitorDeadLetter
' References transactional dead-letter queues.
Public Sub MonitorTransactionalDeadLetter()
Dim TxDeadLetter As New MessageQueue(".\XactDeadLetter$")
While True
Dim txDeadLetterMessage As Message = _
TxDeadLetter.Receive()
' Process the transactional dead-letter message.
End While
Return
End Sub 'MonitorTransactionalDeadLetter
End Class 'MyNewQueue
using System;
using System.Messaging;
namespace MyProject
{
/// <summary>
/// Provides a container class for the example.
/// </summary>
public class MyNewQueue
{
//**************************************************
// Provides an entry point into the application.
//
// This example demonstrates several ways to set
// a queue's path.
//**************************************************
public static void Main()
{
// Create a new instance of the class.
MyNewQueue myNewQueue = new MyNewQueue();
myNewQueue.SendPublic();
myNewQueue.SendPrivate();
myNewQueue.SendByLabel();
myNewQueue.SendByFormatName();
myNewQueue.MonitorComputerJournal();
myNewQueue.MonitorQueueJournal();
myNewQueue.MonitorDeadLetter();
myNewQueue.MonitorTransactionalDeadLetter();
return;
}
// References public queues.
public void SendPublic()
{
MessageQueue myQueue = new MessageQueue(".\\myQueue");
myQueue.Send("Public queue by path name.");
return;
}
// References private queues.
public void SendPrivate()
{
MessageQueue myQueue = new
MessageQueue(".\\Private$\\myQueue");
myQueue.Send("Private queue by path name.");
return;
}
// References queues by label.
public void SendByLabel()
{
MessageQueue myQueue = new MessageQueue("Label:TheLabel");
myQueue.Send("Queue by label.");
return;
}
// References queues by format name.
public void SendByFormatName()
{
MessageQueue myQueue = new
MessageQueue("FormatName:Public=5A5F7535-AE9A-41d4" +
"-935C-845C2AFF7112");
myQueue.Send("Queue by format name.");
return;
}
// References computer journal queues.
public void MonitorComputerJournal()
{
MessageQueue computerJournal = new
MessageQueue(".\\Journal$");
while(true)
{
Message journalMessage = computerJournal.Receive();
// Process the journal message.
}
}
// References queue journal queues.
public void MonitorQueueJournal()
{
MessageQueue queueJournal = new
MessageQueue(".\\myQueue\\Journal$");
while(true)
{
Message journalMessage = queueJournal.Receive();
// Process the journal message.
}
}
// References dead-letter queues.
public void MonitorDeadLetter()
{
MessageQueue deadLetter = new
MessageQueue(".\\DeadLetter$");
while(true)
{
Message deadMessage = deadLetter.Receive();
// Process the dead-letter message.
}
}
// References transactional dead-letter queues.
public void MonitorTransactionalDeadLetter()
{
MessageQueue TxDeadLetter = new
MessageQueue(".\\XactDeadLetter$");
while(true)
{
Message txDeadLetter = TxDeadLetter.Receive();
// Process the transactional dead-letter message.
}
}
}
}
#using <system.dll>
#using <system.messaging.dll>
using namespace System;
using namespace System::Messaging;
ref class MyNewQueue
{
public:
// References public queues.
void SendPublic()
{
MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );
myQueue->Send( "Public queue by path name." );
return;
}
// References private queues.
void SendPrivate()
{
MessageQueue^ myQueue = gcnew MessageQueue( ".\\Private$\\myQueue" );
myQueue->Send( "Private queue by path name." );
return;
}
// References queues by label.
void SendByLabel()
{
MessageQueue^ myQueue = gcnew MessageQueue( "Label:TheLabel" );
myQueue->Send( "Queue by label." );
return;
}
// References queues by format name.
void SendByFormatName()
{
MessageQueue^ myQueue = gcnew MessageQueue( "FormatName:Public=5A5F7535-AE9A-41d4 -935C-845C2AFF7112" );
myQueue->Send( "Queue by format name." );
return;
}
// References computer journal queues.
void MonitorComputerJournal()
{
MessageQueue^ computerJournal = gcnew MessageQueue( ".\\Journal$" );
while ( true )
{
Message^ journalMessage = computerJournal->Receive();
// Process the journal message.
}
}
// References queue journal queues.
void MonitorQueueJournal()
{
MessageQueue^ queueJournal = gcnew MessageQueue( ".\\myQueue\\Journal$" );
while ( true )
{
Message^ journalMessage = queueJournal->Receive();
// Process the journal message.
}
}
// References dead-letter queues.
void MonitorDeadLetter()
{
MessageQueue^ deadLetter = gcnew MessageQueue( ".\\DeadLetter$" );
while ( true )
{
Message^ deadMessage = deadLetter->Receive();
// Process the dead-letter message.
}
}
// References transactional dead-letter queues.
void MonitorTransactionalDeadLetter()
{
MessageQueue^ TxDeadLetter = gcnew MessageQueue( ".\\XactDeadLetter$" );
while ( true )
{
Message^ txDeadLetter = TxDeadLetter->Receive();
// Process the transactional dead-letter message.
}
}
};
//*************************************************
// Provides an entry point into the application.
//
// This example demonstrates several ways to set
// a queue's path.
//*************************************************
int main()
{
// Create a new instance of the class.
MyNewQueue^ myNewQueue = gcnew MyNewQueue;
myNewQueue->SendPublic();
myNewQueue->SendPrivate();
myNewQueue->SendByLabel();
myNewQueue->SendByFormatName();
myNewQueue->MonitorComputerJournal();
myNewQueue->MonitorQueueJournal();
myNewQueue->MonitorDeadLetter();
myNewQueue->MonitorTransactionalDeadLetter();
return 0;
}
package MyProject;
import System.*;
import System.Messaging.*;
/// <summary>
/// Provides a container class for the example.
/// </summary>
public class MyNewQueue
{
//**************************************************
// Provides an entry point into the application.
//
// This example demonstrates several ways to set
// a queue's path.
//**************************************************
public static void main(String[] args)
{
// Create a new instance of the class.
MyNewQueue myNewQueue = new MyNewQueue();
myNewQueue.SendPublic();
myNewQueue.SendPrivate();
myNewQueue.SendByLabel();
myNewQueue.SendByFormatName();
myNewQueue.MonitorComputerJournal();
myNewQueue.MonitorQueueJournal();
myNewQueue.MonitorDeadLetter();
myNewQueue.MonitorTransactionalDeadLetter();
return;
} //main
// References public queues.
public void SendPublic()
{
MessageQueue myQueue = new MessageQueue(".\\myQueue");
myQueue.Send("Public queue by path name.");
return;
} //SendPublic
// References private queues.
public void SendPrivate()
{
MessageQueue myQueue = new MessageQueue(".\\Private$\\myQueue");
myQueue.Send("Private queue by path name.");
return;
} //SendPrivate
// References queues by label.
public void SendByLabel()
{
MessageQueue myQueue = new MessageQueue("Label:TheLabel");
myQueue.Send("Queue by label.");
return;
} //SendByLabel
// References queues by format name.
public void SendByFormatName()
{
MessageQueue myQueue =
new MessageQueue("FormatName:Public=5A5F7535-AE9A-41d4"
+ "-935C-845C2AFF7112");
myQueue.Send("Queue by format name.");
return;
} //SendByFormatName
// References computer journal queues.
public void MonitorComputerJournal()
{
MessageQueue computerJournal = new MessageQueue(".\\Journal$");
while (true) {
Message journalMessage = computerJournal.Receive();
// Process the journal message.
}
} //MonitorComputerJournal
// References queue journal queues.
public void MonitorQueueJournal()
{
MessageQueue queueJournal = new MessageQueue(".\\myQueue\\Journal$");
while (true) {
Message journalMessage = queueJournal.Receive();
// Process the journal message.
}
} //MonitorQueueJournal
// References dead-letter queues.
public void MonitorDeadLetter()
{
MessageQueue deadLetter = new MessageQueue(".\\DeadLetter$");
while (true) {
Message deadMessage = deadLetter.Receive();
// Process the dead-letter message.
}
} //MonitorDeadLetter
// References transactional dead-letter queues.
public void MonitorTransactionalDeadLetter()
{
MessageQueue objTxDeadLetter = new MessageQueue(".\\XactDeadLetter$");
while (true) {
Message txDeadLetter = objTxDeadLetter.Receive();
// Process the transactional dead-letter message.
}
} //MonitorTransactionalDeadLetter
} //MyNewQueue
.NET Framework-Sicherheit
- Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter .
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0
Siehe auch
Referenz
MessageQueue-Klasse
MessageQueue-Member
System.Messaging-Namespace
QueueName
MessageQueue.MachineName-Eigenschaft
MessageQueue.FormatName-Eigenschaft
MessageQueue.Label-Eigenschaft
MessageQueue
Close