2010-01-23 21 views
7

Tôi hiểu đây là một chủ đề cơ bản nhưng chưa bao giờ làm điều này trước khi bắt đầu từ wsdl.Với tệp wsdl + xds type, làm cách nào để tạo một trang web WCF sơ khai?

Tôi đang được đưa một tệp wsdl và một loạt các xsd với các định nghĩa loại. Tôi không có một đầu mối nếu họ đã được tạo ra từ một dịch vụ WCF (tôi đoán như vậy vì định dạng tách ra) nhưng tôi cần phải tạo ra một dịch vụ WCF thực hiện hợp đồng.

Câu hỏi: Làm cách nào để nhận giao diện hợp đồng dịch vụ?

Tôi biết về wsdl.exe và svcutil.exe - nhưng không quá quen thuộc với những gì là gì. Tôi đoán sau đó tất cả những gì còn lại là triển khai hợp đồng dịch vụ.

Bất kỳ trợ giúp nào được đánh giá cao!

P.S. Tôi đã có một câu hỏi khác về điều này nhưng tôi đã cố gắng để đặt quá nhiều thứ trong cùng một câu hỏi - vì vậy hãy giữ nó đơn giản ngay bây giờ.

Trả lời

13

Bạn có hai lựa chọn:

Lựa chọn 1: Sử dụng tiện ích svcutil.exe trên dòng lệnh. Nó sẽ được cài đặt trong thư mục C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin của bạn (hoặc một cái gì đó tương tự, tùy thuộc vào máy và hệ điều hành bạn có)

Sử dụng svcutil -? cho danh sách của tất cả các tham số. Về cơ bản, ở dạng đơn giản nhất của nó, sử dụng:

svcutil (name of your service).wsdl (name of your datafile).xsd 

và điều đó sẽ tạo ra một tương ứng (name of your service).cs C tập tin # với dịch vụ và hợp đồng dữ liệu, và một tập tin mẫu config.

Tệp * .cs kết quả (hoặc * .vb, nếu bạn muốn VB.NET) sẽ chứa hợp đồng dịch vụ (các phương thức, kết quả từ WSDL) và các hợp đồng dữ liệu (phần dữ liệu, đến từ XSD) cho dịch vụ của bạn.

Phương án 2: Sử dụng "Add Service Reference" hộp thoại trong Visual Studio (trên phần "Tham khảo" nút trong Solution Explorer của bạn) và chỉ cần nhập tên tập tin của tập tin WSDL của bạn:

Add Service Reference dialog

Điều này sẽ tạo một tham chiếu dịch vụ, về cơ bản giống như đầu ra từ tiện ích svcutil.exe - cộng với một vài lớp và tệp trợ giúp cho Visual Studio. Thật không may, trong cả hai trường hợp, việc nhập sẽ tạo ra một tập tin cấu hình quá tải khủng khiếp mà có lẽ là một trong những lý do khiến các lập trình viên nghĩ WCF phức tạp quá mức - nó thực sự không, nhưng hai công cụ nhập này chỉ làm một công việc tồi tệ về việc tạo cấu hình cơ bản cho bạn .... đừng để điều đó làm bạn sợ hãi!

Nếu thêm tham chiếu dịch vụ cho WSDL không tự động chuyển đổi tất cả các tệp XSD có liên quan và cần thiết, bạn có thể cần thêm các tệp đó vào dự án của mình và sau đó sử dụng một cái gì đó như XSD2Code để chuyển đổi chúng thành C# (hoặc VB.NET)) các lớp học cho bạn.

wsdl.exe là tiện ích không dùng nữa để chuyển đổi tệp WSDL thành danh mục ASMX (ASP.NET webservice) - không sử dụng nữa, sử dụng svcutil.exe hoặc Tham chiếu dịch vụ bổ sung của Visual Studio cho WCF.

Để biết cách tạo cấu hình WCF phù hợp và tối thiểu, hãy xem Chương trình truyền hình DotNet Rocks # 122 với Miguel Castro mang tên Extreme WCF. Miguel trình bày một cách tuyệt vời để cấu trúc các dự án WCF của bạn, và tạo ra nhiều cấu hình như là thực sự cần thiết (và do đó có thể được hiểu rõ hơn rất nhiều so với mess tạo ra bởi svcutil).

+0

cảm ơn bạn đã trợ giúp! - Ra khỏi phỏng đoán tôi đã thử với cách thêm tham chiếu, để ngạc nhiên của tôi không có giao diện xuất hiện, chỉ là một loạt các lớp học (theo spec tôi nhận với wsdl). Ngoài ra - liên quan đến tệp cấu hình - tôi có thể vứt bỏ nó đi và bắt đầu một dịch vụ mới triển khai hợp đồng dịch vụ và bao gồm các loại dữ liệu không? – JohnIdol

+0

@JohnIdol: chắc chắn, bạn có thể quăng cấu hình và sau đó tạo lại chính những gì bạn cần. Không phải là một ý tưởng tồi ở tất cả :-) Thông thường, khi bạn thêm dịch vụ Ref., Bạn sẽ nhận được một loạt các lớp học, nhưng trong một trong các tập tin, có phải là một giao diện một nơi nào đó, mà bạn có thể cơ sở thực hiện serviec của bạn trên. –

+0

@marc_s: Tôi nghĩ rằng tôi đã đi với 'thêm tham khảo web' (được sử dụng localhost) - và không phải 'thêm dịch vụ tham khảo' khi tôi đã cố gắng thời gian qua. Điều đó có tạo nên sự khác biệt về mặt giao diện không hiển thị không? ;) – JohnIdol

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