2009-06-22 33 views
50

Tôi đã tạo một Dịch vụ Web bằng .Net và do đó địa chỉ của tệp dịch vụ có một giải thích tự động được tạo thuận lợi về cách hoạt động của nó. Khi tôi chạy trang từ máy, nó được lưu trữ trên nó thậm chí có một biểu mẫu mà tôi có thể sử dụng để gửi các giá trị thử nghiệm cho dịch vụ. Tuy nhiên trên các máy từ xa, nó ẩn biểu mẫu và cung cấp thông báo như đã thấy ở trên."Biểu mẫu kiểm tra chỉ khả dụng cho các yêu cầu từ máy cục bộ."

Có điểm nào cho vấn đề này không? Tôi đã thấy các trang web khác gọi đây là "an toàn hơn" nhưng bất kỳ ai cũng có thể tạo biểu mẫu của riêng họ một cách dễ dàng khiến điều này không có gì khác ngoài phiền toái nếu bạn hỏi tôi.

+2

Bạn đã có một câu hỏi? Bạn cũng có thể muốn nói phiên bản .NET bạn đang sử dụng, hoặc cho dù bạn đang sử dụng các dịch vụ ASMX hay WCF. –

+0

Tôi làm cách nào để gọi dịch vụ webService? Tôi cần thực thi sự kiện khi xảy ra sự thay đổi trên ServerSide. Tôi có nên đặt chương trình trong HOST máy chủ không? –

Trả lời

3

Nếu bạn xuất bản siêu dữ liệu và đó là dịch vụ web công cộng/không an toàn, bạn nói đúng, mọi người có thể dễ dàng tạo ra một khách hàng đơn giản để sử dụng dịch vụ web của bạn. Trong trường hợp đó, việc máy khách web chỉ được tạo trên máy cục bộ có vẻ như phiền toái.

Nếu dịch vụ của bạn là riêng tư và được bảo mật, tuy nhiên, đây sẽ là lỗ hổng bảo mật lớn, cung cấp cho mọi người tên máy chủ và dịch vụ khách hàng được xác thực sử dụng để truy cập dữ liệu của bạn và thực hiện mọi loại tác hại.

Tôi tưởng tượng chính sách tạo giao diện người dùng cho các dịch vụ Web ASMX chỉ trên chính máy chủ là nỗ lực cung cấp một số công cụ tốt trong khi loại bỏ các lỗ hổng bảo mật ngẫu nhiên. WCF đã thực hiện với điều này trong mọi trường hợp, bạn có thể tạo ra các máy khách chỉ khi siêu dữ liệu được xuất bản, và họ cần phải thực hiện bảo mật đúng để truy cập các dịch vụ.

+0

Vậy làm thế nào để tôi làm việc? – Si8

+2

Câu trả lời bên dưới (câu trả lời với hơn 120 người trả lời) cho bạn biết cách làm việc - chúc may mắn! –

+0

Tôi đã đặt câu hỏi này: http://stackoverflow.com/questions/41752213/why-is-asmx-giving-an-error-with-pulling-data-from-client-script. Bạn có thể giúp đỡ không? – Si8

138

Bạn có thể làm việc xung quanh vấn đề này bằng cách sửa đổi web.config bạn để bao gồm các nút:

<configuration> 
    <system.web> 
    <webServices> 
     <protocols> 
      <add name="HttpGet"/> 
      <add name="HttpPost"/> 
     </protocols> 
    </webServices> 
    </system.web> 
</configuration> 

này sẽ cho phép bạn tham quan dịch vụ web asmx thông qua trình duyệt của bạn. Sau đó, bạn có thể gọi các dịch vụ web ngay trong trình duyệt của mình, chuyển đối số và xem kết quả.

+8

+1 vì ứng dụng của tôi ở trong môi trường bảo mật và cho QA điều này là hoàn toàn cần thiết. Cảm ơn. – BryanGrimes

+7

+1 nó giải quyết vấn đề của tôi .. rất hữu ích :) –

+0

Giúp tôi quá, nhưng có một vấn đề khác, vì nó chuyển hướng tôi đến trang với cổng được chỉ định. Làm thế nào tôi có thể loại bỏ cổng từ chuỗi địa chỉ. –

14

Chỉ cần tôi đang sử dụng .NET 4.0 và có cùng sự cố này.

Tuy nhiên tôi đã sử dụng ...

<add name="HttpSoap12"/> 
<add name="HttpSoap"/> 
<add name="HttpGet"/> 
<add name="HttpPost"/> 

Trong những khu vực tương tự và nó làm việc. Nhưng chỉ với HttpGetHttpPost thì không.

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