Это анонимная функция , которая является самоисключением . Обычно известный как Immediatly вызываемое выражение функции (IIFE).
Если вы хотите загружать большие файлы, вам определенно нужно будет изучить режим потоковой передачи WCF .
В принципе, вы можете изменить режим передачи на свой привязку; по умолчанию он буферизуется, то есть все сообщение должно буферизироваться на отправителе, сериализоваться, а затем передаваться в целом.
При потоковой передаче вы можете определить одностороннюю передачу (только для загрузки, только для загрузки) или двунаправленной потоковой передачи. Это делается путем установки transferMode вашей привязки к StreamedRequest
, StreamedResponse
или просто Streamed
.
<bindings>
<basicHttpBinding>
<binding name="HttpStreaming"
maxReceivedMessageSize="2000000"
transferMode="StreamedRequest"/>
</basicHttpBinding>
</bindings>
Тогда вам нужно иметь контракт на обслуживание, который либо получает параметр введите Stream
(для загрузки) или вернет значение типа Stream
(для загрузки).
[ServiceContract]
public interface IFileUpload
{
[OperationContract]
bool UploadFile(Stream stream);
}
Это должно быть сделано!
MTOM оптимизирован для обработки больших двоичных данных.
Вы можете использовать webHttpBinding с потоком передачи TransferMode и один поток или ответ потока (в зависимости от ситуации) для больших файлов вверх / загрузок, но вам придется отправлять любые метаданные запроса через URL-адреса и / или заголовки, если только вы не используете собираюсь придумать собственное обрамление в Поток. Вам придется создавать пользовательский клиент без HTML (например, Silverlight, Flash и т. Д.), Поскольку браузеры не поддерживают случайный доступ к локальным файлам, а обычная загрузка файлов будет отправкой формы, а не JSON.
Stream
(или возвращаемое значение типаStream
). Если вы не можете создать свой сервис так и должны следовать другим конкретным требованиям, то, к сожалению, вы просто не можете использовать передачу потокового трафика. Нет способа magic i> сделать эту работу. – marc_s 5 March 2013 в 22:47byte[]
в метод без проблем, но если вы измените тип параметра сbyte[]
наstring
, тогда он ограничивается примерно 28 мб. Я должен иметьstring
в качестве параметра. – Franck 14 February 2018 в 14:17