@ Heretic Monkey сказал в комментариях: Ну, вы не можете передать массив byte [], если используемая вами структура является строковым значением ... если вы не используете Base 64
Может быть, в некоторых случаях вы правы, но:
Convert.ToBase64String
Вы можете легко преобразовать выходную строку обратно в байтовый массив, используя Convert.FromBase64String.
Примечание. Выходная строка может содержать «+», «/» и «=». Если вы хотите использовать строку в URL, вам нужно явно ее кодировать. © combo_ci
Так, иногда лучше использовать HttpServerUtility.UrlTokenEncode (byte []) и декодировать его на стороне сервера.
Но моя проблема заключалась в том, что веб-сервис не мог принимать большие файлы. И на стороне клиента я получил исключение «415: неподдерживаемый тип носителя». Это было решено путем изменения конфигурации на стороне веб-службы:
<!-- To be added under <system.web> -->
<httpRuntime targetFramework="4.5" maxRequestLength="1048576" executionTimeout="3600" />
<!-- To be added under <system.webServer> -->
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>