C # Convert.FromBase64String дает пустой байт [] с допустимой строкой

2

У меня есть немного ублюдка. У меня есть небольшая строка кода, которая преобразует строку base64 обратно в байт []. На моем компьютере разработки он работает без проблем, но при развертывании на нашем сервере приложений результирующий массив байтов всегда пуст, и я не могу понять, почему.

Я надеюсь, что некоторые из вас, гениев, могут знать ответ?

Здесь простая одна строка кода:

byte[] fileBytes = Convert.FromBase64String("SGVsbG8gV29ybGQhIQ==");

В некотором контексте приложение, из которого это происходит, является проектом веб-API asp.net core 2.1. ОС сервера приложений - Windows Server 2008 R2. У меня установлен пакет.net core 2.1.4 runtime/хостинг. Образец строки base64 был создан в приложении JavaScript и представляет собой текстовый файл, содержащий "Hello World !!".

Любая помощь приветствуется.

  • 2
    Это не подведет, что-то еще происходит. Это буквально точный код или строка получена динамически? Что вы используете, чтобы определить, что массив пуст?
  • 0
    Привет, Crowcoder, эта строка динамически получена из файла .txt с "Hello Wold !!" в нем, но я даже попробовал это так же, как вы видите это там, и он все еще дает мне пустой байтовый массив. Сначала я заметил, что массив пуст, потому что у меня есть код в try ... catch, который пытается создать MemoryStream с помощью byte [], затем я добавил код в catch, чтобы записать длину байтового массива и некоторые другие детали. ,
Теги:
asp.net-core-2.1

1 ответ

0
Лучший ответ

Хорошо, так получилось, что я был настоящим идиотом, lol. Я писал байт [] в журнале, который дал мне System.byte []. По какой-то причине я убедился, что это означает, что массив пуст. Чтобы поддержать мое заблуждение, я получал ошибку в строке, которая создает поток памяти из байта []. Сегодня утром, когда я наткнулся на него, я понял, что ошибка, которую я получаю, представляет собой исключение NullReferenceException, которое не имеет смысла для пустого массива.

Короче говоря, ошибка была не тем, чем я был, мои извинения за то, что тратили время.

По крайней мере, у меня есть новое начало, чтобы продолжить мою ошибку. Спасибо всем, кто пытался/хотел помочь!

  • 0
    Конечно, что-то вроде string.Join(", ", fileBytes) запишет содержимое массива. fileBytes == null пустую строку, если массив пуст, и выдаст исключение, если fileBytes == null (нет массива).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню