У меня возникли некоторые проблемы при создании службы WCF, которая поддерживает загрузку очень больших файлов.Я прочитал много руководств о том, как установить атрибут TransferMode для Streamed, увеличить все атрибуты messageSize и bufferSize до Int32.MaxValue, и все же мне не повезло.(Я также возвращаю поток в качестве тела сообщения через атрибут MessageBodyMember, а метаданные отправляются через заголовки с использованием атрибутов MessageHeader).
Если я задаю все эти атрибуты, я могу нормально загрузить файлы меньшего размера, нокогда я пытаюсь загрузить файлы размером 1-2 ГБ, я просто получаю ошибку 400 неверных запросов, что затрудняет отладку ...
В идеале мой сервис должен поддерживать файлы размером не менее 8 ГБ.Это даже выполнимо с WCF?Различные атрибуты messageSize файла web.config, по-видимому, ограничены Int32.MaxValue, который равен максимальному размеру файла 2 ГБ.
Из моих исследований я обнаружил, что, похоже, мне придется использовать WebClient.DownloadFileвместо.Файлы должны быть доступны для скачивания только пользователям, имеющим необходимые права.В WCF мой метод загрузки мог принимать параметр токена, который сервер мог проверять и возвращать поток, только если у пользователя были права на загрузку запрошенного файла.Это не кажется прямым, используя подход WebClient.Если у кого-то есть какие-то рекомендации относительно того, как это сделать (через WebClient), я был бы очень признателен.
В идеале моя служба WCF должна администрировать и предоставлять пользовательские токены и каким-то образом привязывать к каждому отдельному файлу, какие токены в настоящее время используются.законно (токены должны быть использованы только один раз).Затем загрузка должна осуществляться через WebClient.
Заранее благодарим за любые подсказки.