2010-10-15 43 views

Trả lời

0

Bạn không thể tiêu thụ WCF trực tiếp bằng MS Access.

Nếu bạn sở hữu dịch vụ WCF, bạn sẽ phải thay đổi nó thành dịch vụ web bằng cách sử dụng các ràng buộc HTTP.

Nếu bạn không sở hữu nó, bạn sẽ phải viết dịch vụ web của riêng bạn về cơ bản là một trình bao bọc xung quanh WCF.

Sau đó, bạn có thể sử dụng nó làm dịch vụ web trong MS Access.

9

Bạn CÓ THỂ sử dụng các dịch vụ WCF thông qua MS Access, nhưng không qua các cơ chế WCF chuẩn. Bạn sẽ cần phải tiêu thụ dịch vụ thông qua các yêu cầu GET, các yêu cầu POST hoặc các yêu cầu SOAP.

  1. Một cách để thực hiện điều này cho các yêu cầu SOAP ở phía Truy cập bằng cách sử dụng bộ công cụ SOAP: http://msdn.microsoft.com/en-us/library/aa140260%28office.10%29.aspx

  2. Một cách khác mà sẽ làm việc cho GET, POST hay SOAP yêu cầu được sử dụng XMLHTTP (nếu bạn đi các tuyến đường SOAP, bạn sẽ cần phải thực hiện phong bì của riêng SOAP trong XML): http://www.codemaker.co.uk/it/tips/ado_conn.htm (tìm kiếm cho XMLHTTP)

về phía WCF bạn có một vài choic es:

  1. Lưu trữ dịch vụ WebHttpBinding. Điều này cung cấp cho bạn các tùy chọn để hiển thị các điểm cuối GET và POST cho các dịch vụ của bạn. Xem http://www.windowsitpro.com/article/net-framework2/exposing-classic-http-endpoints-with-wcf-in-net-3-5.aspx.

  2. Lưu trữ dịch vụ BasicHttpBinding hiển thị điểm cuối SOAP (đây là điểm cuối WCF mặc định nếu bạn tạo dịch vụ mới trong Visual Studio). Nếu bạn đi tuyến đường này, bạn có thể muốn đặt nó để sử dụng tuần tự hóa XML kế thừa và WSDL cho khả năng tương thích nếu bạn đi với tùy chọn 1 trên đầu truy cập (xem http://msdn.microsoft.com/en-us/library/system.servicemodel.xmlserializerformatattribute.aspx).

Một điều khác cần lưu ý: Nếu bạn tạo một dịch vụ WCF BasicHttpBinding với XmlSerializerFormatAttribute, cơ bản bạn đang nhận được (từ một góc độ trao đổi dữ liệu) được điều tương tự như khi bạn đang viết một dịch vụ di sản asmx.

+1

Đây là một câu trả lời thực sự hay, đầy đủ, với nhiều nội dung thú vị được vẽ cùng nhau ở một nơi. +1 - Tôi sẽ cho +5 nếu tôi có thể. –