2010-07-09 7 views
9

Nếu ứng dụng của tôi bắt đầu, tôi kiểm tra trước nếu đã có phiên bản ứng dụng và nếu có, tôi sẽ tập trung vào cá thể đang chạy và chấm dứt quy trình mới được tạo. Tôi làm điều này với một ống được đặt tên được đăng ký thông qua WCF. Điều đó hoạt động tốt cho đến nay.Đường ống được đặt tên riêng trong phiên máy chủ đầu cuối

Bây giờ ứng dụng của tôi cũng sẽ được sử dụng trong môi trường máy chủ đầu cuối. Có đúng là các đường ống được đặt tên là hệ thống rộng, để tôi phải thay đổi logic khởi động để không tập trung vào các trường hợp của những người dùng khác (những gì chắc chắn sẽ không hoạt động nhưng phá vỡ ứng dụng của tôi) hay Terminal Server (2003R2) cô lập WCF-Bindings mỗi phiên TS?

Tôi chưa thể truy cập môi trường sản xuất, đó là lý do tôi đăng câu hỏi này. Có lẽ ai đó có thể cho tôi câu trả lời cho câu hỏi này?

Cập nhật

Qua another post tôi đã liên quan đến việc khởi động ứng dụng, tôi biết được rằng có một cách thuận tiện hơn để quản lý khởi động ứng dụng duy nhất sử dụng một Mutex, có thể được sử dụng hệ thống rộng hoặc trên một phiên terminal nền tảng.

Câu hỏi tuy nhiên là mở dù sao đi nữa và có lẽ ai đó có WCF tốt - biết ơn có thể trả lời câu hỏi đó. Sẽ rất thú vị đây.

Trả lời

8

Ống có tên là toàn hệ thống. Không có tiền tố "Toàn cầu" hoặc "Địa phương" như có đối với các loại đối tượng hạt nhân khác.

Điều này là do ống được đặt tên được sử dụng như một phần của tài nguyên mạng, ví dụ: myComputer\pipename. Các đối tượng nhận tiền tố "Global" và "Local" (sự kiện, semaphores, mutexes, timers, ánh xạ tập tin và công việc) được scoped vào máy tính và không thể được truy cập bởi một máy tính khác.

1

Bài viết này giải thích làm thế nào để hạn chế đường ống đặt tên cho một phiên duy nhất của thiết bị đầu cuối máy chủ: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365600(v=vs.85).aspx

Để ngăn chặn người dùng từ xa hoặc người dùng trên một phiên dịch vụ thiết bị đầu cuối khác nhau truy cập vào một ống tên, sử dụng SID đăng nhập trên DACL cho đường ống. SID đăng nhập cũng được sử dụng trong các logon chạy; nó là SID được sử dụng để bảo vệ không gian tên đối tượng mỗi phiên. Để biết thêm thông tin, hãy xem Lấy đăng nhập SID trong C++. https://msdn.microsoft.com/en-us/library/windows/desktop/aa446670(v=vs.85).aspx