У меня есть операция WCF, подобная этой,
public bool SubmitDocument(byte[] document)
Таким образом, идея заключается в том, что вызывающая сторона сериализует документ и вызывает вышеуказанную операцию. Затем он помещается в нашу базу данных.
Я пытаюсь понять внутреннюю работу WCF, поэтому, когда кто-то вызывает вышеуказанную операцию, кажется логичным, что все данные байта [] должны быть отправлены на сервер перед вызовом фактической операции.
Есть ли способ «регистрировать», когда эти данные начинают загружаться на сервер, а также отлавливать ошибку, если это не удается на полпути? У меня возникла проблема с документами, размер которых составляет около 4 МБ, и в некоторых случаях моя служба WCF даже не регистрирует, что кто-то пытается вызвать эту операцию.
Я увеличил ограничение размера загрузки, как это,
<wsHttpBinding>
<!-- The upload limit should be 5 Mb, rounding up to 6 Mb just to be sure -->
<binding name="CarWebserviceBinding" maxReceivedMessageSize="6291456">
<security mode="None">
</security>
<!-- The upload limit should be 5 Mb, rounding up to 6 Mb just to be sure -->
<readerQuotas maxArrayLength="6291456" />
</binding>
</wsHttpBinding>
В целом проблема заключается в том, что третья сторона вызывает вышеуказанную операцию WCF (SubmitDocument), и документ никогда не доходит до нашей цели, если она превышает 4 МБ.