Проблема может в том, как вы читаете из входного потока.
Всякий раз, когда вы имеете дело с потоками, вы должны читать повторно, отмечая возвращаемое значение на каждой итерации. Итак, ваш оригинальный код должен быть:
byte[] fileData = new byte[uploadFile.ContentLength];
int totalRead = 0;
while (totalRead < fileData.Length)
{
int read = uploadFile.InputStream.Read(fileData, totalRead,
fileData.Length - totalRead);
if (read == 0)
{
throw new IOException("Input data was truncated");
}
totalRead += read;
}
Однако это может не быть проблемой. Я ожидаю, что это приведет к усеченным данным, а не к полному отсутствию данных. Когда вы говорите, что «просто не может быть добавлено», вы могли бы быть более конкретным? Сколько логов вы положили? Где код, который фактически вставляет данные в базу данных? Какой тип MIME показывают ваши журналы для случаев, когда он терпит неудачу?
Мне кажется, что дополнительное ведение журнала может иметь огромное значение здесь ... в настоящее время либо вы не знаете, в чем дело, либо просто не сказали нам. Регистрация должна прояснить это.