2008-10-09 40 views
13

Khi tôi thử kiểm tra AutoLotWCFService bằng cách sử dụng "wcftestclient", tôi nhận được lỗi sau. Tôi đang làm gì sai? Bất kỳ cái nhìn sâu sắc sẽ giúp đỡ. Đây là một dịch vụ Web đơn giản có wshttpbinding với giao diện hợp đồng và việc thực hiện trong dịch vụ. Đây là thông báo lỗi dài: Tệp Web.Config có 2 điểm cuối - một cho chính Dịch vụ Web và một cho metaDataExchange. Tất cả các công cụ mặc định của nó khá nhiều. Tôi có thể bao gồm mã nếu cần - có vẻ như tôi không thể đính kèm tệp tại đây.Lỗi WCF bằng WCFTestClient để kiểm tra một Dịch vụ Web WCF đơn giản


Error: Cannot obtain Metadata from http://localhost/AutoLotWCFService/Service.svc 
If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. 
For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455. 
WS-Metadata Exchange Error 
    URI: http://localhost/AutoLotWCFService/Service.svc 
    Metadata contains a reference that cannot be resolved: 'http://localhost/AutoLotWCFService/Service.svc'. 
    The remote server returned an unexpected response: (405) Method not allowed. 
    The remote server returned an error: (405) Method Not Allowed. 
    HTTP GET Error URI: http://localhost/AutoLotWCFService/Service.svc 
    The document at the url http://localhost/AutoLotWCFService/Service.svc was not recognized as a known document type.The error message from each known type may help you fix the problem: 
    - Report from 'DISCO Document' is 'Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2.'. 
    - Report from 'WSDL Document' is 'There is an error in XML document (1, 2).' -Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2. 
    - Report from 'XML Schema' is 'Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2.'. 

+0

Bạn có thể bao gồm các phần cấu hình liên quan đến dịch vụ không? Thật khó để nói mà không có những gì đang xảy ra. – Bryant

+0

Hợp đồng dịch vụ (và bất kỳ hợp đồng dữ liệu nào được sử dụng) cũng sẽ hữu ích. –

+0

Thêm cấu hình này vào cấu hình web máy chủ của bạn theo được chỉ định, sau đó sẽ cung cấp lỗi thực:

Trả lời

0

bạn cần phải chắc chắn rằng các hành vi dịch vụ cấu hình cho phép có một thẻ siêu dữ liệu với httpGetEnabled = "true"

<serviceBehaviors> 
    <behavior name="serviceBehavior"> 
    <serviceMetadata httpGetEnabled="true"> 
    </behavior> 
</serviceBehaviors> 

Bên cạnh đó, chắc chắn rằng tài liệu tham khảo dịch vụ của bạn mà hành vi.


<service name="blah" behaviorConfiguration="serviceBehavior"> 
0

Cảm ơn; tin rằng nó hay không phải là vấn đề của ít nhất là tải dịch vụ thông qua wcftestclient đã được giải quyết khi tôi đăng ký lại ASPNET trong IIS với aspnet-regiis.

Vấn đề tiếp theo là có thể gọi các phương thức được dịch vụ tiếp xúc thông qua wcftestclient. Các vấn đề an ninh mà tôi phải giải quyết là gì? Tôi đã phải bật đăng nhập Ẩn danh với cửa sổ xác thực. và vẫn là các ngoại lệ được tạo ra được gọi ra chỉ ra một cái gì đó liên quan đến vi phạm truy cập. Tìm kiếm một số điểm để cài đặt chứng chỉ để có thể gọi .. Vui lòng khai sáng nếu có thể.

15

Gần đây tôi đã gặp sự cố này trong khi cố gắng lưu trữ WCF trên Máy tính xách tay Windows Vista của mình theo IIS7.

Lần đầu tiên tôi nhận được lỗi sau: "Lỗi HTTP 404.3 - Không tìm thấy" và một trong các nghị quyết được đề xuất là "Đảm bảo rằng trình xử lý dự kiến ​​cho trang hiện tại được ánh xạ."

Vì vậy, tôi đã thêm một trình xử lý cho tệp .svc theo cách thủ công và xác định tệp đó là một DiscoveryRequestHandler, nghĩ rằng điều này có thể hữu ích. Điều này gây ra sự cố bạn đã mô tả ở trên.

Độ phân giải thực tế là để xóa các handler tôi đã thêm vào, và chạy các lệnh sau:

CD c:\windows\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ 
ServiceModelReg -i 

này giải quyết vấn đề của tôi và các dịch vụ đang làm việc tốt. Tôi hy vọng điều này có thể giúp làm sáng tỏ vấn đề của bạn. Tôi không thể chắc chắn nhưng điều này có lẽ là do thứ tự mà tôi đã cài đặt các gói khác nhau trên máy tính xách tay dev của tôi.

+0

Excelent! Điều này làm việc như một say mê. Đã có một vấn đề 404,17 và điều này cố định nó. –

+0

Điều này cũng giải quyết được lỗi "Phương pháp không được phép" của tôi. Dịch vụ này sẽ hoạt động trên máy chủ web nội bộ của studio trực quan, nhưng không hoạt động trên i-ốt trên máy chủ cục bộ. Bây giờ nó hoạt động với iis quá. –

0

Hãy thử kiểm tra xem dịch vụ (tên) trong Đánh dấu dịch vụ (nhấp chuột phải vào tên servicename.svc) có khớp với dịch vụ (tên) trong tệp web.config của bạn không.

Chúc mừng!

1

Nếu cài đặt công cụ không hoạt động, hãy thử sửa chữa, thao tác này sẽ gỡ cài đặt và sau đó cài đặt.

"%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r 
Các vấn đề liên quan