Member 11589429 Ответов: 1

File. readallbytes() return {byte[0]}


Я хочу uplad файл в определенное место с помощью asp.net веб-сервис .Когда я пишу это:

байт [файл] = FileUpload1.FileBytes;
и проходя веб-сервис, веб-сервис работает нормально.Клиент может быть службой windows, а не веб-приложением.Путь к файлу может быть отправлен в службу.Из пути к файлу я хочу преобразовать его в байтовый массив.Поэтому я использовал

byte [] array = файл.ReadAllBytes("C:\\Users\\riya\\Desktop\\sample.txt");
Но это не работает.Массив всегда содержит ноль{байт[0]}.Как с этим справиться?

Что я уже пробовал:

byte [] array = файл.ReadAllBytes("C:\\Users\\riya\\Desktop\\sample.txt");

1 Ответов

Рейтинг:
0

OriginalGriff

Проблема в том, что Служба не работает под вашим идентификатором пользователя - она работает под системным пользователем, который не имеет доступа к данным вашего пользователя. И поскольку этот файл находится на рабочем столе пользователя, служба не имеет к нему никакого доступа. В результате вызов ReadAllBytes вызовет исключение, и ваш код, по-видимому, поймает его и заменит пустым массивом.
Переместите файл в другую папку и убедитесь, что все пользователи имеют доступ к содержащимся в нем файлам.