2010-02-19 29 views
5

Tôi đang thử nghiệm các dịch vụ web trong .NET lần đầu tiên. Tôi gần như ở đó, nhưng dường như tôi không thể sử dụng dịch vụ web. Tôi biết bài đăng này tương tự như khoảng 5-6 bài đăng khác trên trang web này, nhưng tôi đã xem xét chúng và vẫn không thể có được cú pháp chính xác.Tiêu thụ các dịch vụ web trong VB.NET

Cho đến nay, tôi có: -Tạo một dịch vụ web đơn giản mà tạo ra một thư mục -Worked trong môi trường phát triển, nhưng mất một số xử lý sự cố để có được để làm việc trên máy chủ trực tiếp -Tôi có thể kéo lên "Automagically" tạo ra trang dịch vụ .NET. -Thêm tham chiếu dịch vụ web - bây giờ có thể xem tham chiếu trong trình thám hiểm giải pháp của tôi và trong intellisense.

Cập nhật: Dưới đây là một liên kết đến webservice bản thân: http://67.78.188.50/Jservices/Service1.asmx

Các dịch vụ web chấp nhận một chuỗi (tên của thư mục ví dụ/test/thư mục). Tuy nhiên, khi tôi nhập vào tên của Web Reference (ServiceReference1) - Tôi không nhận được những phương pháp tôi mong đợi ...

Dưới đây là lựa chọn của tôi với các đối tượng ServiceReference1 ...

ServiceReference1.makeDirRequest 
ServiceReference1.makeDirRequestBody 
ServiceReference1.makeDirResponse 
ServiceReference1.makeDirResponseBody 
ServiceReference1.Service1Soap 
ServiceReference1.Service1SoapChannel 
ServiceReference1.Service1SoapClient 
+2

Nếu bạn không có bất cứ điều gì tốt đẹp để nói, John Saunders, không nói gì cả :) – tpow

+0

Nếu bạn có WebMethods tiếp xúc trong dịch vụ của bạn, bạn có thể gọi chúng. Bạn có bất kỳ phương pháp nào về dịch vụ của mình với thuộc tính [WebMethod()] không? – kd7

+0

Có, makeDir là phương thức web tiếp xúc sử dụng thuộc tính đó. Đó là cú pháp cho "Gọi" mà tôi dường như không thể nhận được. Câu lệnh gọi như thế nào? – tpow

Trả lời

8

đèo , bạn đã không đăng tải đủ mã để xem những gì bạn đã làm

tôi rất muốn giới thiệu rằng WCF sử dụng của bạn

với tên mẫu của bạn chứng minh, bạn cần

Dim service As New ServiceReference1.Service1SoapClient 
service.makeDir("some val") 

Tải xuống một trong nhiều mẫu trên web (nhiều trên số codeproject) và nhận mẫu làm việc trước. Nếu bạn không thể làm điều đó để đi thì có điều gì đó sai với bạn cài đặt Windows

4

Tôi không chắc chắn rằng makeDirRequest là dịch vụ - có vẻ như một thông báo . Tìm loại khác trong không gian tên đó (có thể kết thúc bằng "dịch vụ" hoặc "khách hàng" nếu bạn may mắn, nhưng cuối cùng được đặt tên dựa trên những gì bạn đã gõ khi sử dụng "thêm tham chiếu web", v.v.) được thừa kế từ WebService.

Điều này phải có phương thức công khai của bạn làm phương thức công khai.


Sau khi nhìn thấy các dịch vụ, tôi mong đợi vấn đề là bạn đang thêm một dịch vụ tham khảo (WCF/3.0) chứ không phải là một web tham khảo (2.0). Nếu bạn đang nhắm mục tiêu 3.0/3.5, bạn có thể thêm tham chiếu web bằng cách sử dụng tùy chọn "Nâng cao ..." => "Thêm tham chiếu web" (trong hộp thoại "Thêm dịch vụ tham chiếu").Sau đó, bạn có thể sử dụng (trong đó WebReference là bất cứ điều gì bạn đặt tên nó khi thêm tài liệu tham khảo):

Using client As WebReference.Service1 = New WebReference.Service1 
    Dim foo As String = "foo" 
    client.makeDir(foo) 
End Using 

Nếu bạn thay vì sử dụng một WCF dịch vụ tham khảo, sau đó tên có xu hướng bao gồm "Soap" trên không (nơi ServiceReference1 là bất cứ điều gì bạn đã đặt tên khi thêm tham chiếu):

Using client As ServiceReference1.Service1SoapClient = New ServiceReference1.Service1SoapClient 
    Dim foo As String = "foo" 
    client.makeDir(foo) 
End Using 

Dù bằng cách nào, nó cũng hoạt động tương tự.

+0

Cảm ơn Marc - Tôi đã thêm thông tin về những gì tôi thấy. Đó là bằng cách nào đó khác với tất cả các bài viết mà mọi người đang đăng, không chắc chắn tại sao ... – tpow

+0

@cinquTimo - xem cập nhật –

+0

Đặc biệt là phần >> bạn có thể thêm tham chiếu web bằng cách sử dụng "Nâng cao ..." => "Thêm Tham khảo web "tùy chọn << là quan trọng. Tôi đã phải vật lộn với điều đó khi tôi sử dụng một dịch vụ web lần đầu tiên trong một ứng dụng Win Forms. Rất nhiều hướng dẫn nói về "thêm một tham chiếu", nhưng vấn đề là thêm một tham chiếu web. – Maddin

1

Xem How to Consume a Web Service và xem nó có giúp ích cho bạn hay không. Ví dụ là trong C#, nhưng bạn sẽ tìm thấy nó dễ dàng để dịch.

+0

@ John Saunders - Cảm ơn John, tôi đã tìm thấy bài viết của bạn và nó rất tốt cho người mới bắt đầu. Tôi cần tìm hiểu thêm về WCF. Tôi biết nó sẽ là nền tảng ưu tiên MS cho các dịch vụ web, nhưng tôi không hiểu cơ chế của nó. Đây là một dịch vụ rất đơn giản, vì vậy tôi sẽ không chuyển nó đến WCF bởi vì nó đã được làm việc, nhưng tôi sẽ sử dụng WCF di chuyển về phía trước. Cảm ơn .. – tpow

+0

@cinqoTimo: Tôi rất vui vì nó đã giúp ích. BTW, nó không phải là "sẽ được" nền tảng MS ưa thích. Nó đã được nền tảng ưa thích trong hơn ba năm.Các dịch vụ web ASMX hiện được coi là "công nghệ kế thừa" và không nên được sử dụng để phát triển mới. –

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