2012-03-06 28 views
5

Tôi đang gặp sự cố khi chạy vài tệp có chứa dịch vụ wcf. Dịch vụ được tạo mà không có tệp cấu hình và không có tệp .svc. Có thể chạy một dịch vụ không có tệp .svc. Đây là 2 tệp lớp C# đơn giản có các yêu cầu dịch vụ đầy đủ, như hợp đồng dịch vụ và hợp đồng hoạt động.Tạo dịch vụ WCF mà không cần tệp .svc

Tôi đã thử nó gọi từ lớp khác, nhưng nó mang lại cho lỗi này: "một dự án với một loại sản lượng của lớp thư viện không thể khởi động trực tiếp"

câu hỏi của tôi là: nó là cần thiết để có một dịch vụ. tệp svc?

+3

Không - bạn có thể ** tự lưu trữ ** dịch vụ WCF trong ứng dụng được quản lý - không có tệp * .svc hoặc bất kỳ thứ gì như thế cần thiết - chỉ một số mã. Xem [tài liệu MSDN có liên quan] (http://msdn.microsoft.com/en-us/library/ms731758.aspx) về cách thực hiện điều đó. –

Trả lời

7

Nếu bạn không lưu trữ dịch vụ của bạn trong IIS, không cần .svc. Lý do cho .svc trong IIS là:

WCF services hosted in IIS are represented as special content files (.svc files) inside the IIS application. This model is similar to the way ASMX pages are represented inside of an IIS application as .asmx files. A .svc file contains a WCF-specific processing directive (@ServiceHost) that allows the WCF hosting infrastructure to activate hosted services in response to incoming messages.

+3

Nếu bạn lưu trữ trong IIS và phiên bản khung công tác của bạn là 4 hoặc cao hơn, không cần đến .svc. Chỉ cần sử dụng [Kích hoạt dựa trên cấu hình] (http://blogs.msdn.com/b/rampo/archive/2009/10/27/activation-without-svc-files-config-based-activation-cba.aspx) – Mike

1

Hãy nhìn vào WCF WebAPI nó có rất nhiều bit và miếng mát mẻ để cho phép bạn làm những việc như lưu trữ bên ngoài IIS hoặc lưu trữ thông qua một ràng buộc. bài viết này hướng dẫn bạn qua một số dịch vụ cơ bản. http://www.tugberkugurlu.com/archive/introduction-to-wcf-web-api-new-rest-face-ofnet

tuy nhiên làm lưu ý rằng ngay cả khi SelfHosting (chạy một dịch vụ WCF trong một quá trình cửa sổ), bạn vẫn sẽ cần một thực thi (tức là bạn không thể chỉ cần chạy một thư viện lớp của chính nó)

1

tệp .svc là bắt buộc khi bạn lưu trữ dịch vụ trong IIS. Tệp thực sự là tệp văn bản tương tự tệp .asmx. Nếu bạn mở nó bằng bất kỳ trình soạn thảo văn bản nào, bạn sẽ thấy một số chi tiết như tệp .asmx. Chẳng hạn như Ngôn ngữ (C#/VB), Mã dịch vụ và Tên dịch vụ, Gỡ lỗi, v.v.

Không cần thiết phải có tệp svc nếu bạn không lưu trữ trên IIS. Tự lưu trữ là ví dụ về không có tệp svc.

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