2009-08-03 43 views
12

Đây có thể là một câu hỏi thực sự đơn giản, nhưng tôi không thể tìm được câu trả lời:Tạo webservice từ wsdl

Đối với khách hàng, tôi cần HOST một dịch vụ web. Khách hàng đã gửi cho tôi một tệp wsdl mà webservice nên 'triển khai'. Làm thế nào để tôi đi về điều đó? Tôi đã tạo ra bất kỳ số lượng khách hàng-rpoxies nhưng đây là cách khác xung quanh. Tôi có thể sử dụng cả ASP.NET 2.0 webservices hoặc Windows Communication Foundation.

+0

tạo WSDL cho các lớp hiện có = "chiến lược từ dưới lên" [so với] tạo bộ xương lớp cho WSDL hiện có = "chiến lược từ trên xuống" (Wikipedia) – JohnB

Trả lời

15

wsdl.exe /server.

Tạo lớp trừu tượng cho dịch vụ Web XML dựa trên hợp đồng. Mặc định là tạo ra các lớp proxy của khách hàng. Khi sử dụng tùy chọn /thông số, giá trị này là một phần tử có chứa "máy chủ".

Bạn có thể làm một điều tương tự với svcutil.exe cho WCF- cái gì đó như:

svcutil.exe thewsdl.wsdl/ngôn ngữ: C# /out:ITheInterface.cs (Tôi đã không kiểm tra này) .

Chỉnh sửa- John Saunders làm cho một điểm tốt trong câu trả lời của mình để ủng hộ cách tiếp cận WCF- Tôi cũng đề xuất điều này.

+0

Có thực sự đơn giản không? Tôi đã sử dụng wsdl.exe nhiều lần nhưng không biết về chuyển đổi/máy chủ. Tôi sẽ kiểm tra và báo cáo – edosoft

+1

Yeap. WSDL phát triển đầu tiên là một cách tiếp cận hợp lệ - xem bài viết này: http://blogs.msdn.com/dotnetinterop/archive/2008/09/24/wsdl-first-development-with-wcf.aspx – RichardOD

+0

Nếu bạn muốn kết quả nó trong C# nó là đơn giản như thế này: svcutil.exe thefile.wsdl –

0

Bạn có thể sử dụng tiện ích wsdl từ microsoft để tạo giao diện máy chủ và triển khai chúng

Đây là mô tả ngắn về tiện ích WSDL.

wsdl.exe - Utility để tạo mã cho khách hàng dịch vụ xml web và xml web dịch vụ sử dụng ASP.NET từ các tập tin hợp đồng WSDL, XSD schema và .discomap tài liệu khám phá. Công cụ này có thể được sử dụng kết hợp với disco.exe.

2

Bạn có thể làm nhiều việc với tệp WSDL (wissd'le) đó.

Từ làm WS Lớp tay sử dụng Auto tạo lớp từ wsdl.exe

let của tưởng tượng rằng, ví dụ, bạn có WDSL này (tooked từ WebServiceX.Net)


để tạo proxy C# được tạo tự động bạn đi tới dấu nhắc lệnh và viết:

wsdl /language:cs /protocol:soap /out:C:\myProxyScripts http://www.webservicex.net/TranslateService.asmx?wsdl 

Note: bên trong C: \ Program Files \ Microsoft SDKs \ Windows \ v6.1 \ thư mục Bin bạn sẽ tìm thấy wsdl.exe hoặc chỉ làm một dir/s trong C: \ Program Files \

nếu bạn muốn trong Visual Basic, chỉ cần sử dụng /ngôn ngữ: vb hoặc /l: vb

/language: Ngôn ngữ sử dụng cho lớp proxy được tạo. Chọn từ 'CS', 'VB', 'JS', 'VJS', 'CPP' hoặc cung cấp tên đủ điều kiện cho lớp triển khai System.CodeDom.Compiler.CodeDomProvider.

Ngôn ngữ mặc định là 'CS' (CSharp). Dạng ngắn là '/ l:'.

Lệnh này sẽ đặt bên trong C: \ myProxyScripts proxy được tạo tự động của bạn.

nếu bạn sử dụng file WSDL trong máy tính của bạn, chỉ thay đổi URL để bạn đường dẫn đầy đủ, ví dụ

wsdl /language:cs /protocol:soap /out:C:\myProxyScripts C:\myProxyScripts\myWsdlFile.wsdl 

Lưu ý: Proxy tạo của bạn sẽ được gọi là Tên Dịch vụ, tên bạn đã chỉ định, trong ví dụ của chúng tôi là:

<wsdl:service name="TranslateService"> 

Tôi hy vọng điều này sẽ giúp bạn, hiểu WSDL, các proxy được tạo tự động và bạn có thể quản lý bây giờ mọi thứ trong phần cuối của bạn để đáp ứng mong muốn của khách hàng của bạn.

14

Thực ra, bạn nên làm điều này với svcutil.exe, không phải với wsdl.exe. WSDL.EXE là một phần của công nghệ dịch vụ web ASMX mà Microsoft coi là mã "kế thừa", sẽ không có lỗi cố định.

+1

được tư vấn rằng điều này tạo ra mã WCF, chứ không phải ASMX :) – balexandre

+0

Đó là loại điểm. Ý tưởng sẽ là tạo mã mà nhà sản xuất không coi là "kế thừa" và nơi họ vẫn có kế hoạch tăng cường và khắc phục lỗi. –

+0

+1 từ tôi. Tôi nên đề cập đến điểm này trong câu trả lời của tôi. – RichardOD

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