簡體   English   中英

從Silverlight客戶端上傳WCF文件

[英]WCF File upload from Silverlight client

我正在嘗試使用流上傳大文件將文件上傳到WCF服務。 使用普通客戶端(例如ASP.net頁),所有這些工作都很好。 但是在Silverlight中,出現以下錯誤:此流不支持超時

我正在通過內存流進行上傳,並且我認為問題基本上是因為沒有在Silverlight中調用sync方法,而是被迫調用async方法。 因此,這是不正常的內存流。 我試圖找到其他要使用的流,但似乎要么Silverlight不支持它們(緩沖流,網絡流),要么破壞該方法(由於某種原因,通用流必須是要使用的方法的唯一參數)。 我在這里想念什么嗎? 我最初使用的是字節數組,但是對於我需要允許上傳的內容有太多的大小限制。

我可以在這里插入我的代碼,但是由於一切都可以在我的ASP.net測試客戶端上正常運行,所以我認為綁定和代碼都可以。

這里有三個獨立的問題:

1)您可以在合同中使用流類型嗎?

2)您可以在客戶端上獲得真正的流行為嗎? (例如,上傳2GB文件而不在堆棧中的任何位置分配2GB內存-包括基礎HTTP堆棧)

3)您能否在服務器上獲得真正的流行為?

據我所記得,在Silverlight中,對#1和#2的答案是“否”(盡管在SL4.0中可能已更改)。 因此,您可以獲得的最好成績是#3。 例如,您可以嘗試一些技巧,在Silverlight端具有基於byte []的協定,該協定與在服務器端基於Stream的協定具有相同的XML投影。 或者,在客戶端使用byte []並直接在服務器端從Message類讀取。

但是我對#1 /#2的回憶可能是錯誤的...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM