Tôi đang nhầm lẫn về việc đăng ký cơ sở wcf lâu đài.Tôi có cần tệp svc để thiết lập Castle Wcf Facility cho các dịch vụ không phải là HTTP
Tôi đọc một số bài đăng trên blog cho BasicHttpBinding. Nhưng không thể tìm thấy một mẫu rõ ràng dễ dàng để thiết lập một thiết lập net.tcp.
Tôi muốn để lưu trữ các dịch vụ từ một ứng dụng giao diện điều khiển ...
tôi đã viết một cái gì đó như thế này ... bạn có thể thấy một vấn đề ở đây?
_container = new WindsorContainer();
_container.AddFacility<WcfFacility>();
_container.Register(Component.For<IMembershipService>().ImplementedBy<MembershipService>()
.AsWcfService(
new DefaultServiceModel()
.AddEndpoints(WcfEndpoint
.BoundTo(new NetTcpBinding() { PortSharingEnabled = false })
.At("net.tcp://localhost/MembershipService")
)
.PublishMetadata()
)
);
Hãy ghi nhớ tính khả hữu khi người dùng không được phép sử dụng chia sẻ cổng. Tôi đã có vấn đề này, tôi đã nhận một CommunicationException với gợi ý tôi có thể chỉnh sửa phần allowAccounts trong tập tin SMSvcHost.exe.config để cho phép người dùng làm điều đó. Nhưng giải pháp này là không thực tế gây ra các tập tin nằm trong C: \ Windows \ Microsoft.NET \ ... Giải pháp của tôi cho đến nay: Loại bỏ các Mex Endpoint/PublishMetadata(). Tôi sẽ xuất bản dữ liệu meta với cấu hình ràng buộc thứ hai, nếu cần trong tương lai. –
Ồ, và trước khi tôi có "Dịch vụ chia sẻ cổng Net.Tcp" bị tắt trong các dịch vụ cửa sổ của tôi. Người dùng cuối của bạn cũng có thể bị vô hiệu hóa này và có thể không được phép kích hoạt nó (và kích hoạt nó bằng cách sử dụng trình cài đặt không phải là một lựa chọn khá) –