2014-04-09 21 views
24

Tôi đã thêm tham chiếu dịch vụ vào dự án web mvc4 của mình và để nó với không gian tên mặc định "ServiceReference1", nhưng khi tôi muốn sử dụng không gian tên đó, studio trực quan không thể tìm thấy nó, giống như nó không tồn tại, các webservice là lên và làm việc tốt. Chính xác thì tôi đang làm gì sai?không thể truy cập tham chiếu dịch vụ được thêm vào

Trả lời

63

tôi tìm thấy giải pháp HERE mà như Hoakie đề cập dưới đây hướng dẫn làm việc cho tôi và Reference.cs của tôi được tạo ra đúng bây giờ:

1) nhấp chuột phải vào dịch vụ tham khảo

2) Chọn Configure Service Reference

3) Bỏ chọn "loại tái sử dụng trong hội đồng tham chiếu"

và Voila!

+3

Nó làm việc cho tôi cũng. Nhưng có ai không, ý nghĩa của nó là gì và tại sao nó hoạt động? –

+0

Huh ... mất một nửa ngày làm việc về điều này, tìm kiếm toàn bộ hệ thống phân cấp tệp cho sự cố và điều này đã giải quyết được vấn đề này! Cảm ơn bạn nhiêu lăm! – Leonidas

+0

Tuyệt vời ... Vì nó không hoạt động như mong đợi tại sao các nhà phát triển tương ứng đánh dấu nó theo mặc định? !!! Họ chỉ làm như vậy để có được nhiều nhà phát triển lãng phí nửa ngày của họ: ( – Chakri

7

này là do có tên cùngnamespace như lớp tên.

Thay đổi không gian tên của bạn để một tên đó không phải là cùng tên với lớp học của bạn và điều này sẽ biên dịch

+0

Tên lớp là "BaseJob" với không gian tên "SmsPanel, không gian tên tham chiếu dịch vụ là" ServiceReference1 "... –

+0

Tôi không thể tìm thấy bất kỳ mô hình dịch vụ nào ràng buộc trong tệp web.config của mình, mặc dù tôi không chắc chắn cấu trúc trong mvc 4 nhưng không nên điểm cuối được thêm vào tập tin webconfig của tôi ??? –

+0

nếu bạn đã thêm tham chiếu qua studio trực quan, nó sẽ thêm những thứ cần thiết trong web.config bởi nó tự – RezaRahmati

1

Nhìn vào lớp proxy đó được tạo ra bởi visual studio cho dịch vụ của bạn và xem không gian tên là gì và tên lớp

+1

Ở đâu chính xác tôi có thể truy cập lớp proxy này? –

+0

Có một thư mục ServiceReference trong giải pháp của bạn và các tệp được tạo ra có – RezaRahmati

+0

Nếu bạn đang nói về thư mục tham chiếu dịch vụ trong giải pháp của tôi thì không có gì ngoài tài liệu tham khảo dịch vụ của tôi –

2

Một vấn đề thường bị bỏ qua khác là tham chiếu dịch vụ gắn thêm vùng tên gốc của dự án của bạn vào không gian tên bạn cung cấp trong cấu hình dịch vụ.

Nói cách khác, nếu không gian tên của dịch vụ của bạn là ServiceReference1, vùng tên thực tế sẽ được tạo sẽ là [RootNameSpace] .ServiceReference1. RootNameSpace thường là tên của dự án của bạn, vì vậy trong hầu hết các trường hợp, bạn có thể sửa chữa nó đơn giản bằng cách nối tham chiếu dịch vụ của bạn với [projectname.] Của bạn. Nếu tên dự án của bạn là MyProject, thì không gian tên sẽ là MyProject.ServiceReference1

Nó cũng khá đơn giản để mở tệp csproj (giả định C# project) trong notepad và tìm kiếm "RootNamespace" để tìm vùng tên gốc cho dự án.

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