2010-09-30 32 views
8

Tôi cần phát triển một máy chủ WCF (về cơ bản là một dịch vụ web mà cuối cùng sẽ chạy trong IIS) và một ứng dụng khách truy cập dịch vụ. Tôi có cả khách hàng và dự án máy chủ trong cùng một giải pháp Visual Studio (2008).Visual Studio: Đồng thời phát triển máy khách và máy chủ WCF

Cách được khuyến nghị để kết nối máy khách với máy chủ trong quá trình phát triển là gì?

Hai giải pháp có thể xảy ra ngay lập tức: Một là triển khai dự án máy chủ cho một số IIS sau mỗi thay đổi, và một là bắt đầu hai phiên bản của Visual Studio và sử dụng cổng TCP cố định cho (Hình ảnh -studio-tích hợp) máy chủ web của dự án máy chủ.

Kể từ khi không ai trong số các tùy chọn này dường như đặc biệt thanh lịch với tôi, tôi đã tự hỏi nếu tôi đã có thể bỏ qua các "đúng cách" rõ ràng để làm điều này ...

Trả lời

17

Cách tôi làm như sau:
- Nhấp chuột phải vào tệp giải pháp của bạn và chọn Đặt dự án khởi động ...
- Chọn dự án Nhiều khởi động và chọn Bắt đầu cho dự án client và server của bạn, để lại những người khác thiết lập để none.

Bây giờ cả hai dự án sẽ chạy lúc khởi động và bạn sẽ có thể gỡ lỗi cả hai dự án.

1

Bởi vì tôi đã có rất nhiều các dịch vụ WCF sử dụng bởi tôi dự án và tôi không muốn phải chạy quá nhiều trường hợp của VS để gỡ lỗi, đây là những gì tôi làm: -

Nếu bạn đồng ý với IIS cục bộ, bạn có thể xem xét điều này.

  1. Đối với mỗi dịch vụ WCF, tôi đã tạo một dự án trang web.

  2. Dự án trang web này cũng được chia sẻ dưới dạng Thư mục web trong IIS cục bộ. ví dụ: http: \ mylocalmachine \ WCFService1 \ servicefile.svc

  3. Trong máy khách WCF web.config, URL cho dịch vụ được chỉ định như trên. ví dụ: (http: \ mylocalmachine \ WCFService1 \ servicefile.svc)

  4. Vì tôi không muốn triển khai thủ công mỗi khi tôi thay đổi dịch vụ, trong bài đăng của mỗi dự án WCF Service, tôi có nhiệm vụ postbuild nội dung của thư mục bin vào thư mục bin của trang web cho dịch vụ WCF tương ứng đó (thiết lập một lần cho postbuild)

  5. Cấu trúc thư mục của tôi là như vậy cho mọi dự án dịch vụ, có một máy chủ dịch vụ (trang web) dự án ở cùng cấp độ để postbuild cũng rất đơn giản.

  6. Khi tôi chạy ứng dụng khách WCF (F5), các dự án dịch vụ được biên dịch, nội dung của chúng được sao chép vào thùng rác (tức là triển khai tự động vào IIS) và tôi có thể gỡ lỗi bất kỳ dịch vụ nào bằng cách bước vào mã các dịch vụ có cùng giải pháp với tư cách khách hàng WCF của tôi

Một ưu điểm nữa là việc gỡ lỗi (dịch vụ tối thiểu) của tôi cũng sử dụng IIS tương tự như thiết lập sản xuất của tôi.

Chỉnh sửa: Tôi không đặt dự án lưu trữ dịch vụ (trang web) vào giải pháp của mình khi chạy ứng dụng WCF, VS mở một phiên bản cassini cho từng ứng dụng, điều này gây khó chịu và tôi không cần hoặc sử dụng

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