Tôi có một dịch vụ web có chứa phương pháp này:Cách gọi một Phương thức Dịch vụ Web?
[WebMethod]
public static List<string> GetFileListOnWebServer()
{
DirectoryInfo dInfo = new DirectoryInfo(HostingEnvironment.MapPath("~/UploadedFiles/"));
FileInfo[] fInfo = dInfo.GetFiles("*.*", SearchOption.TopDirectoryOnly);
List<string> listFilenames = new List<string>(fInfo.Length);
for(int i = 0; i < fInfo.Length; i++)
{
listFilenames.Add(fInfo[i].Name);
}
return listFilenames;
}
này trả về một danh sách các tên tập tin trong một thư mục. Khi tôi gỡ lỗi ứng dụng, nó hoạt động tốt.
Điều tôi muốn làm là gọi phương thức webservice này từ ứng dụng biểu mẫu. Tôi đã thêm một tham chiếu đến .dll của webservice, và đây là cách tôi gọi phương thức trên:
private void Form1_Load(object sender, EventArgs e)
{
List<string> files = TestUploaderWebService.Service1.GetFileListOnWebServer();
}
Đoạn mã trên không hoạt động - khi nó đi vào phương pháp, đường dẫn của ứng dụng web là null và nhiều thuộc tính từ lớp HostingEnvironment cũng không có giá trị. Sai lầm của tôi ở đâu, khi cố gắng gọi một phương thức dịch vụ web từ một ứng dụng winform khác?
Xin lưu ý rằng dịch vụ web được thực hiện trong Visual Web Developer Express và biểu mẫu winform trong Visual C# express; đây là lý do tại sao tôi phải thêm dll dịch vụ web làm tham chiếu trong ứng dụng biểu mẫu. Tôi không có Visual Studio đầy đủ, mà sẽ cho phép tôi một giải pháp duy nhất với cả hai dự án.
Tôi mới sử dụng dịch vụ web.
PS - tôi yêu các định dạng của văn bản on-the-fly đây :)
tuyệt vời - cảm ơn bạn rất nhiều! Bây giờ tôi đã loại bỏ các ref dll, và thêm một tài liệu tham khảo dịch vụ cho URL. Tuy nhiên tôi đã nhận thấy nó không cho tôi truy cập trực tiếp đến phương pháp của tôi, thay vào đó tôi nhận được quyền truy cập vào các lớp học được gọi là: GetFileListOnWebServerRequest, GetFileListOnWebServerRequestBody, GetFileListOnWebServerResponse, GetFileListOnWebServerResponseBody.có bất kỳ tài nguyên web nào tôi có thể đọc về các lớp được tạo tự động này không? Tôi không biết cách sử dụng chúng. –
Nó tạo ra rất nhiều phần, nhưng chỉ cần tìm phương thức GetFileListOnWebServer. –
Thực ra, hãy nhìn vào ví dụ của John. –