2011-03-18 31 views
5

Tôi có phần mềm chạy cục bộ và trên một số máy chủ nào sau đây:MSMQ :: GetPrivateQueuesByMachine thất bại khi sử dụng "localhost"

var queues = MessageQueue.GetPrivateQueuesByMachine("localhost"); 

Một máy chủ nói riêng ném một ngoại lệ:

System.Messaging.MessageQueueException: Message Queue service is not available. 
    at System.Messaging.MessageQueue.GetPrivateQueuesByMachine(String machineName) 

MSMQ được cài đặt giống như trên các máy khác của tôi. Tôi cũng có nhiều Dịch vụ WCF được liên kết thành công với net.msmq://localhost/private/....

Có một số lý do khiến MSMQ có thể không bị ràng buộc với localhost không?

Sau khi kiểm tra MSDN, có vẻ như tôi nên sử dụng ".", Hoạt động tốt, nhưng tôi muốn tránh thay đổi mã và triển khai lại, khi localhost có vẻ hoàn toàn hiệu quả. FWIW, đây là kết quả của một số thử nghiệm khác mà tôi đã chạy:

var queues = MessageQueue.GetPrivateQueuesByMachine("."); // succeeds 
var queues = MessageQueue.GetPrivateQueuesByMachine("localhost"); // fails 
var queues = MessageQueue.GetPrivateQueuesByMachine("127.0.0.1"); // fails 
var queues = MessageQueue.GetPrivateQueuesByMachine("machineName"); // fails 
+0

Bạn có giải pháp nào cho vấn đề này không? Nếu bạn sẽ giúp tôi –

+0

@Tôi đã không làm vậy. Tôi mới bắt đầu sử dụng "." mọi nơi. Đối với sự xấu hổ ... = [ – Langdon

+0

Ok cảm ơn cho phát lại ... Tôi nghĩ rằng tôi cần phải tìm bất kỳ cách nào khác .. –

Trả lời

1

Có khả năng là mục nhập tệp HOSTS ánh xạ địa chỉ IP của máy chủ cục bộ đến một số tên máy.

+2

Có nghĩa là đề cập đến kiểm tra đó trong câu hỏi. localhost thực sự được liệt kê và hoạt động từ trình duyệt web. Ngoài ra, xem xét rằng 127.0.0.1 không thành công, nó loại trumps các tập tin host. – Langdon

+0

Đúng. Trong thử nghiệm của bạn, bạn có "." thành công nhưng "machinename" thì không. Tôi giả sử machineName chỉ là bạn giấu tên máy thật. "." nên giải quyết tên máy cục bộ và sau đó kết nối. Do đó có vẻ như có điều gì đó sai trái với cách máy giải quyết tên riêng của nó. –

Các vấn đề liên quan