2011-09-02 33 views
14

Tôi đã tạo một dịch vụ web thuộc loại asmx. Và tôi đang sử dụng dịch vụ web của tôi trong ứng dụng cửa sổ .net.Làm thế nào để tăng thời gian chờ của dịch vụ web trong asp.net?

Phương pháp web từ dịch vụ web nhận chuyển đổi mảng byte của đối tượng & đối tượng thuộc lớp của tôi có các thuộc tính khác nhau trong đó tôi đang thêm một tệp xml dưới dạng chuỗi. Khi chuỗi của tôi chứa dữ liệu xml tăng thì nó cho tôi lỗi "Hết thời gian" trong khi gửi dữ liệu đến dịch vụ web.

Cách tăng thời gian chờ của dịch vụ web?

Cảm ơn.

Trả lời

8

bạn có thể làm điều này theo nhiều cách khác nhau:

  1. Thiết lập một thời gian chờ trong người gọi dịch vụ web từ mã (không chắc chắn 100% nhưng tôi nghĩ rằng tôi đã thấy điều này thực hiện);
  2. Đặt thời gian chờ trong hàm tạo của proxy dịch vụ web trong tham chiếu web;
  3. Đặt thời gian chờ ở phía máy chủ, web.config của ứng dụng dịch vụ web.

xem tại đây để biết thêm chi tiết về trường hợp thứ hai:

http://msdn.microsoft.com/en-us/library/ff647786.aspx#scalenetchapt10_topic14

và ở đây để biết chi tiết về vụ việc lần cuối:

How to increase the timeout to a web service request?

+0

tôi sử dụng tùy chọn thứ 2 & thiết lập thuộc tính thời gian chờ của các tài sản dịch vụ web lớp proxy nhưng nó ném một ngoại lệ là 'Kết nối tiềm ẩn đã được đóng cửa: Kết nối đã được đóng unexpectedly.' – Priyanka

15

1 - Bạn có thể thiết lập một thời gian chờ trong đơn đăng ký của bạn:

var client = new YourServiceReference.YourServiceClass(); 
client.Timeout = 60; // or -1 for infinite 

Đó là trong giây.

2 - Ngoài ra bạn có thể tăng giá trị timeout trong thẻ httpRuntime trong web/app.config:

<configuration> 
    <system.web> 
      <httpRuntime executionTimeout="<<seconds>>" /> 
      ... 
    </system.web> 
</configuration> 
+6

Lưu ý rằng httpRuntime phần tử ở đây: ... –

+2

Theo https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.100) .aspx thuộc tính được biểu thị bằng giây, không phải là mili giây. –

+0

@SueMaurizio Cảm ơn bạn đã sửa đổi. – MOH3N

1

Trong file app.config (hoặc .exe.config) bạn có thể thêm hoặc thay đổi "receiveTimeout "tài sản trong ràng buộc. như thế này

<binding name="WebServiceName" receiveTimeout="24:00:00" /> 
+0

Có phải RIGHT? xin giải thích someOne. –

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