2010-04-05 17 views
9

Tôi đã đăng ký, tôi đã tải xuống mã mẫu, tôi đã có WSDL ... nhưng tôi không biết cách lấy công cụ này vào ứng dụng .Net hiện có. WSDL nằm trong một tệp zip, không phải là URL nên tôi không thể chỉ "Thêm tham chiếu web". Tôi đã chạy công cụ wsdl từ dấu nhắc lệnh .Net, và nó đã làm một lớp học tốt đẹp cho tôi ... nhưng thả vào thư mục web_reference của tôi không cho tôi bất kỳ loại lớp instantiatable.Tích hợp Dịch vụ Web của FedEx vào .Net, bị kẹt ở bước 1

Tôi biết tôi đang thiếu điều gì đó ngu ngốc. Ai đó có thể chỉ cho tôi đi đúng hướng không?

Trả lời

2

Thực ra, bạn chỉ có thể "Thêm tham chiếu web". Cung cấp đường dẫn đến URL.

OTOH, bạn nên làm tất cả phát triển dịch vụ web mới (ngay cả phát triển ứng dụng khách) bằng WCF. Microsoft bây giờ coi các dịch vụ web ASMX là "công nghệ kế thừa".

BTW, tôi vừa thử sử dụng dịch vụ xác thực địa chỉ của họ và dịch vụ này sẽ không hoạt động với .NET. Cả hai máy khách ASMX và WCF sẽ cố gắng sử dụng bộ nối tiếp XML để tiêu thụ dịch vụ này, và có một lỗi ở đó ngăn cản việc sử dụng dịch vụ đó.

+0

Tôi có một vài câu hỏi, nhưng # 1 là, nó sẽ không hoạt động với .Net? Làm thế nào trên trái đất có thể được? Ý tôi là, giao tiếp của FedEx và .Net không thể là một điều mơ hồ ... nó phải được sử dụng trong rất nhiều ứng dụng khác nhau. Đúng? Thứ hai, nếu WSDL mà họ cung cấp cho tôi nằm trong tệp zip, thì tôi không có URL thực để chuyển đến hộp thoại "Thêm tham chiếu web", phải không? Hay bạn đang nói đường dẫn đến .zip phải đủ? Tôi thực sự đang cố gắng sử dụng Dịch vụ xác minh địa chỉ ngay bây giờ - đó là dịch vụ mà chúng tôi quan tâm tại thời điểm này. Điều này không tốt... –

+0

@Matt: nó sẽ không hoạt động với .NET vì dịch vụ không tuân thủ WS-I BP-1, và bởi vì trong trường hợp này, nó gây ra lỗi trong XmlSerializer, điều này khó có thể sửa được. Đường dẫn đến tệp WSDL là đủ. Giải nén nó từ ZIP. –

+0

Vì vậy, bạn đang nói với tôi rằng tôi không thể sử dụng WSDL hoặc anythign như thế, và tôi về cơ bản tìm ra cách để làm điều đó với các yêu cầu http xml tinh khiết và mọi thứ? –

0

Matt, tệp zip WSDL có WSDL và các giao dịch liên kết của nó cho dịch vụ đó. Giải nén tệp và sau đó "Thêm tham chiếu" vào WSDL trong mã của bạn.

+0

@support: Tôi đã thử điều đó hôm qua. Nó không hoạt động. –

0

Thử thay đổi không gian tên của lớp proxy thành lớp ứng dụng của bạn. Tôi hiện đang sử dụng lớp proxy với C# và nó hoạt động bất chấp tài liệu và mẫu giới hạn của FedEx.

+0

@Damon: điều đó giúp ích như thế nào? –

9

Cách thích hợp để tải FedEx API tập tin WSDL trong Visual Studio 2010:

  1. mở Solution Explorer
  2. Nhấp chuột phải dự án của bạn
  3. Nhấp vào 'Add Service Reference'
  4. Nhấp vào Nút 'Nâng cao ...'
  5. Nhấp vào nút 'Thêm tham chiếu web ...'
  6. Nhập đường dẫn chính xác vào tệp WSDL cho cụ thể Tham chiếu web của FedEx mà bạn đang sử dụng. Ví dụ, tôi trích xuất của tôi vào thư mục gốc của ổ C: \, vì vậy tất cả những gì tôi đã nhập vào trường URL là "C: \ ShipService.wsdl" không có dấu ngoặc kép. Nếu bạn để lại dấu ngoặc kép, nó sẽ không hoạt động.
  7. Khi bạn nhấn, Visual Studio sẽ tiêu thụ wsdl vào các lớp khả thi cho bạn. Nhấp vào Thêm tham chiếu và tận hưởng!

Lưu ý: Đảm bảo bạn đọc kỹ tài liệu FedEx - rất nhiều dịch vụ của họ có vấn đề về bắp thịt và việc triển khai có thể là một cơn ác mộng. Ví dụ, dịch vụ xác nhận địa chỉ của chúng được tiêu thụ không chính xác và tạo các mảng hai chiều trong Reference.cs nơi chúng không tồn tại - đây là chi tiết trong tài liệu. Tệ hơn nữa, thực tế là họ không cho phép xác nhận địa chỉ trên môi trường dev của họ không được tài liệu ở bất cứ đâu! Chúc may mắn!

+0

Điều này làm việc cho tôi. Cám ơn rất nhiều. –

+0

Thax rất nhiều, tôi lãng phí hơn 2 giờ để tìm URL máy chủ –