2009-02-19 16 views
64

Tôi đã có một WCF ứng dụng Client/ServerLàm thế nào tôi có thể loại bỏ thông báo lỗi "Các mục tiêu lắp ráp không chứa các loại dịch vụ" trong VS2008?

thực thi của tôi không xác định bất kỳ ServiceContract, nó thậm chí không có một tham chiếu đến System.ServiceModel (nhưng thay vào đó có một tham chiếu cho một assembly chứa logic kết nối đến máy chủ)

Tôi đã lắp ráp khác, được tham chiếu bởi EXE của tôi, có chứa ServiceContract.

Nó được sử dụng để hoạt động tốt. Hôm qua, tôi đã chơi rất nhiều với cài đặt dự án của mình (tin cậy một phần, toàn bộ tin cậy, cài đặt triển khai, v.v.) và bây giờ, mỗi lần tôi khởi chạy ứng dụng khách, tôi có hộp thông báo sau:

Máy chủ lưu trữ dịch vụ WCF của Microsoft
Cụm mục tiêu không chứa loại dịch vụ.
Bạn có thể cần điều chỉnh chính sách Bảo mật truy cập mã của hội đồng này.

Sau đó, VS đóng băng trong 1 phút và cuối cùng cho phép tôi gỡ lỗi chương trình của mình như bình thường.

Tôi đã tìm thấy a post on this problem, nhưng giải pháp không áp dụng trong trường hợp của tôi. Bất kỳ ý tưởng nào?

Trả lời

109

Luôn như vậy. Bạn tìm kiếm trong 2 giờ, cuối cùng bạn sẽ đăng bài trên SO, và 5 phút sau, bạn sẽ tìm thấy câu trả lời.

Trong WCF Options tab của các thuộc tính của dự án xác định ServiceContract, có một hộp kiểm có nhãn "Start WCF Service chủ khi gỡ lỗi một dự án khác trong cùng một giải pháp" mà tôi bỏ chọn.

Tôi không biết nó đã được kiểm tra như thế nào ngay từ đầu.

Dù sao, điều đó đã giải quyết được vấn đề của tôi. Xem MSDN Reference cho cài đặt dự án này.

+0

xin lỗi, nhanh chóng lướt qua và bỏ lỡ liên kết! Tôi nghĩ rằng việc đăng và giải quyết nó 5 phút sau đó điều xảy ra bởi vì bạn nghĩ rằng thông qua các vấn đề và retrace bước của bạn khi bạn đăng và nhận những điều bạn có lẽ không nghĩ đến trước. Nhưng dù sao, vui mừng nó được sắp xếp – Tanner

+0

Không sao cả! Trong trường hợp của tôi, tôi đã tìm thấy cách giải quyết phức tạp trong google, vì vậy tôi đã không nghĩ rằng một "chỉ cần bỏ chọn hộp kiểm" giải pháp tồn tại! – Brann

+0

cảm ơn! đã nhận được khó chịu bởi điều này trong vài tuần qua. –

7

Để xác định dự án có vấn đề này, hãy tìm chuỗi 3D9AD99F-2412-4246-B90B-4EAA41C64699 trong tệp dự án của bạn.

Ví dụ: <ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

Sau đó tắt dự án lựa chọn "WCF Options/Bắt đầu WCF Service chủ khi gỡ lỗi một dự án khác trong cùng một giải pháp"

+0

Trong khi giải pháp này có thể giải quyết vấn đề cho một số người, ít nhất là trong năm 2015 nó sẽ loại bỏ "Xuất bản" từ trình đơn ngữ cảnh khi nhấp chuột phải vào dự án WCF ... –

1

Tôi cũng đã trải qua cùng một loại vấn đề và tìm kiếm trong nhiều giờ để loại bỏ lỗi cụ thể này. Cuối cùng tôi đã tìm ra cách thoát khỏi nó.

Khi bạn gặp vấn đề cụ thể này, bạn cố gắng chạy cả máy chủ của bạn và ứng dụng client as administrator và thay đổi các thuộc tính WPF của dự án. Khi bạn bấm vào các thuộc tính WPF của dự án, bạn sẽ tìm thấy tùy chọn xây dựng.Trong tùy chọn xây dựng, có một tùy chọn được gọi là ** PLATFORM TARGET **, trong đó bạn thay đổi mục tiêu nền tảng thành x86. Cũng lưu ý rằng trong trường hợp x84, bạn cần đặt nó thành x84.

Bây giờ chạy dự án của bạn từ CONSOLE, ví dụ: đi đến thư mục mà các dự án của bạn được lưu và trong thùng của khách hàng, bạn sẽ tìm thấy một DEBUG thư mục mà bạn sẽ nhận được giao diện điều khiển ứng dụng của bạn. Chạy ứng dụng và bạn sẽ thành công !!!

4

Một số blog nói, nó có thể có happend vì sao chép dự án từ một chi nhánh khác nhau, đó sẽ ghi đè GUIDs ... vì vậy chỉ cần xóa chúng như được giải thích trong this blog.

+0

Từ VS2015 loại bỏ de Guid, đi dự án không hợp lệ – Hugo

9

Chỉ trong trường hợp bất cứ ai khác đang tìm kiếm một câu trả lời , một nguyên nhân khác của lỗi này có thể là nếu bạn tình cờ có tệp App.config trong một dự án là Thư viện lớp có phần <system.serviceModel>.

Tôi đã chuyển mã dịch vụ ra khỏi dự án thực thi dự án khác nhưng vô tình để lại tệp App.config cũ. Dự án mới của tôi, đó là một ứng dụng Console được lập trình cấu hình và khởi động WCF, nhưng vì tệp cũ App.config nằm trong hội đồng được tham chiếu, tôi sẽ nhận được hộp thoại khó hiểu ngay cả khi gỡ lỗi ứng dụng Console.

Mất khoảng 12 giờ để theo dõi sự cố này vì tôi không nhận ra rằng trình gỡ lỗi VS kiểm tra tất cả các hội đồng được tham chiếu cho App.config có cấu hình dịch vụ WCF.

+0

Cảm ơn ! Đây là câu trả lời cho tôi! –

1

Lỗi này cũng có thể được gây ra bởi một tên dịch vụ sai trong tập tin cấu hình của bạn:

<system.serviceModel> 
    <services> 
     <service name="MyServiceLibrary.WrongServiceName"> 
... 

Kiểm tra tập tin cấu hình của bạn và chắc chắn tên dịch vụ là đúng.

1

Chủ đề cũ. Chỉ cần loại bỏ bất kỳ đối số dòng lệnh nào từ phần Gỡ lỗi trong Tùy chọn. Điều đó đã giúp tôi.

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