2009-02-17 34 views
5

Tôi hiện đang làm việc trên một dự án nhỏ, nơi tôi cần gửi một tệp có khả năng lớn qua internet.Kích thước và thời gian chờ trên hợp đồng dịch vụ trực tuyến trong WCF

Sau một số cuộc tranh luận, tôi quyết định sử dụng tùy chọn phát trực tuyến thay vì cách tiếp cận chunking. Các tập tin có khả năng rất lớn, tôi không thực sự muốn chỉ định một ràng buộc chính xác trên, 2GB có thể 4GB, những người hiểu biết.

Điều này có thể mất nhiều thời gian. Một lần nữa tôi không thực sự muốn có một thời gian chờ. Nó chỉ mất miễn là nó mất, không quan trọng.

Trong khi poking xung quanh cố gắng các tập tin khác nhau có kích thước khác nhau, tôi từ từ, từng bước, điều chỉnh các thuộc tính của BasicHttpBinding của tôi. Tôi chỉ tự hỏi nếu các giá trị tôi đưa ra là về cơ bản không sao, hoặc nếu họ là hoàn toàn ác?

transferMode="Streamed" 
sendTimeout="10675199.02:48:05.4775807" 
receiveTimeout="10675199.02:48:05.4775807" 
openTimeout="10675199.02:48:05.4775807" 
closeTimeout="10675199.02:48:05.4775807" 
maxReceivedMessageSize="9223372036854775807" 

Điều này chỉ không cảm thấy đúng bằng cách nào đó, đây chỉ là giá trị tối đa có thể cho mỗi cấu trúc dữ liệu cơ bản. Nhưng tôi không biết phải làm gì khác.

Vì vậy, một lần nữa:

Đây có phải là phương pháp tiếp cận phù hợp không? Hay tôi hoàn toàn hiểu lầm và lạm dụng khung làm việc ở đây?

Cảm ơn

Trả lời

2

Vâng, một cách tiếp cận tự nhiên hơn có thể là để gửi các tập tin trong một chuỗi trong khối cỡ trung, với một thông điệp chính thức cam kết; điều này cũng làm cho nó có thể tiếp tục từ lỗi. Có lẽ một vấn đề DOS nhỏ với số mở hoàn toàn ...

0

Tôi đã gặp sự cố khi phát trực tuyến khi kết nối giữa máy khách và máy chủ WCF đi qua VPN. Nếu quan tâm, hãy đọc thêm trong this thread.

Nếu luồng đủ lớn để phát trực tiếp sau đó thêm một phút - một ngoại lệ xảy ra.

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