2010-04-01 17 views
12

Tôi đang cố gắng định cấu hình ánh xạ điểm cuối thư trong cấu hình NServiceBus của mình bằng cách gửi thư từ các không gian tên khác nhau đến các điểm cuối khác nhau.Cách cấu hình MessageEndpointMapping theo không gian tên trong NServiceBus

Như vậy, tôi đã cấu hình như sau trong web.config của tôi:

<MessageEndpointMappings> 
    <add Messages="Company.Messages.Accounts" Endpoint="ServiceInput" /> 
    <add Messages="Company.Messages.Payments" Endpoint="ServiceInput" /> 
    <add Messages="Company.Messages.Cancellations" Endpoint="ServiceInput" /> 
    <add Messages="Company.Messages.Notifications" Endpoint="ServiceInput" /> 
</MessageEndpointMappings> 

Tuy nhiên, khi bắt đầu ứng dụng của tôi, tôi nhận được ngoại lệ sau đây:

Spring.Objects.PropertyAccessExceptionsException: PropertyAccessExceptionsException (1 lỗi); Các thuộc tính lồng nhau PropertyAccessExceptions là: [Spring.Core.TypeMismatchException: Không thể chuyển đổi giá trị thuộc tính kiểu [System.Collections.Hashtable] thành kiểu bắt buộc [System.Collections.IDictionary] cho thuộc tính 'MessageOwners'., Ngoại lệ bên trong: System.ArgumentException: Problem tải tin nhắn lắp ráp: Company.Messages.Payments ---> System.IO.FileNotFoundException: Không thể tải tập tin hoặc lắp ráp 'Company.Messages.Payments' hoặc một trong những phụ thuộc của nó. Hệ thống không thể tìm thấy các tập tin được chỉ định. Tên tệp: 'Company.Messages.Payments'

Điều tôi thấy thú vị là dường như đã tìm thấy Company.Messages.Accounts nhưng không thành công trên dòng được định cấu hình thứ hai. Tôi nghĩ rằng có lẽ nó không thích có tất cả đi đến cùng một điểm cuối, nhưng thay đổi cấu hình này để họ đi các điểm cuối khác nhau đã không thay đổi thông báo lỗi tôi nhận được.

Tôi đang làm gì sai? Không thể phân đoạn các thông điệp bằng không gian tên (tất cả những gì tôi thấy là theo loại và theo lắp ráp)?

Cảm ơn, Steve

Trả lời

14

NSB chỉ hỗ trợ bản đồ của hội hoặc các loại cá nhân để thiết bị đầu cuối. Không gian tên không được hỗ trợ, tôi đề nghị bạn chia bạn hội đồng tin nhắn thành các hội đồng riêng biệt cho mỗi điểm cuối của bạn.

+0

Cảm ơn Andreas. Một người nào đó trong danh sách email của NServiceBus cho rằng điều đó là có thể, nhưng tôi không thể làm cho nó hoạt động được. Cảm ơn câu trả lời dứt khoát. ~ Steve – SteveBering

+0

Điều này vẫn còn hiện tại? Tôi không nghĩ rằng nó là ... –

+3

3.3.0 thêm hỗ trợ cho không gian tên cũng –

5

Theo trang này, bạn có thể chỉ định một loại: http://docs.particular.net/nservicebus/messaging/message-owner

loại cụ thể có thể được cấu hình bằng cách sử dụng tên đủ điều kiện của họ: "namespace.type, lắp ráp".

+0

Tuyệt vời để bao gồm liên kết. Tôi không bao giờ đọc các ví dụ phụ pub vì tôi không cần nó được nêu ra, tuy nhiên tôi havn't thấy rằng chút chút tid-bit bất cứ nơi nào khác trong tài liệu. – etropic

0

Tính đến namespace v3.3 NServiceBus có thể được sử dụng để lọc ánh xạ thông điệp

http://docs.particular.net/nservicebus/messaging/message-owner

+0

Có lẽ doco cũng nên chỉ ra rằng NServiceBus (4.7 là phiên bản tôi đang sử dụng!) Cũng không thành công nếu tôi thêm phần mở rộng Hình ảnh (* .dll trong trường hợp của tôi). Khá trực quan! – agAus

+0

Chúng tôi có ghi chú ở đây: http://docs.particular.net/nservicebus/messaging/message-owner#2-resolving-the-messages-types-to-map-resolving-with-the-assembly Bất kỳ ý tưởng nào về chúng ta có thể làm cho nó rõ ràng hơn? –

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