System.Messaging.MessageQueue queue = new System.Messaging.MessageQueue(".//Private$//MSMQDemo"); System.Messaging.Message message = new System.Messaging.Message();
message.Body = textBox1.Text.Trim();
message.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });
queue.Send(message);
RT 点击发送后报错:
未处理 System.ArgumentOutOfRangeException
Message=长度不能小于 0。
参数名: length
Source=mscorlib
ParamName=length
这里是Message的某些属性不全导致的?到底应该怎么设置后才能成功发送呢?
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 sends a message to a queue.
//************************************************** public static void Main()
{
// Create a new instance of the class.
MyNewQueue myNewQueue = new MyNewQueue(); // Send a message to a queue.
myNewQueue.SendMessage(); return;
}
//**************************************************
// Sends a message to a queue.
//**************************************************
public void SendMessage()
{
// Connect to a queue on the local computer.
MessageQueue myQueue = new MessageQueue(".\\myQueue"); // Send a message to the queue.
if (myQueue.Transactional == true)
{
// Create a transaction.
MessageQueueTransaction myTransaction = new
MessageQueueTransaction(); // Begin the transaction.
myTransaction.Begin(); // Send the message.
myQueue.Send("My Message Data.", myTransaction); // Commit the transaction.
myTransaction.Commit();
}
else
{
myQueue.Send("My Message Data.");
} return;
}
}
}
string mqName = ".\\Private$\\MSMQDemo";
if (MessageQueue.Exists(mqName))
{
queue = new MessageQueue(mqName);
}
else
{
queue = MessageQueue.Create(mqName, false);
queue.SetPermissions("Everyone", MessageQueueAccessRights.FullControl);
}
System.Messaging.Message message = new System.Messaging.Message();
message.Body = textBox1.Text.Trim();
message.Formatter = new XmlMessageFormatter(new Type[] { typeof(String) });
queue.Send(message);
MessageBox.Show("发送成功!");