Указанный ключ слишком длинный; max длина ключа составляет 767 байт
Это сообщение вы получили, потому что 1 байт равен 1 символу, только если вы используете набор символов latin-1
. Если вы используете utf8
, каждый символ будет считаться 3 байтами при определении вашего столбца ключа. Если вы используете utf8mb4
, каждый символ будет считаться 4 байтами при определении вашего столбца ключа. Таким образом, вам нужно умножить предел символов вашего ключевого поля на, 1, 3 или 4 (в моем примере), чтобы определить количество байт, которые ключевое поле пытается разрешить. Если вы используете uft8mb4, вы можете определить только 191 символ для собственного поля InnoDB, primary key. Просто не нарушайте 767 байт.
Читайте здесь для получения дополнительной информации:
Использование переменных среды System Wide в .NET Application
В частности:
Что такое переменные среды системы?
Переменные среды - это строки, которые сохраняют информацию обо всей среде вашей системы. Эти строковые значения являются динамическими, и они могут влиять на поведение вашей системы. Переменные среды можно разделить на два основных типа:
Системные переменные: они влияют на всю систему независимо от текущего пользователя. Они определяются Windows и сохраняются в реестре. Вы должны быть администратором, чтобы иметь возможность изменять их. Обычно вам необходимо перезагрузить компьютер, чтобы сделать эти изменения эффективными.
Пользовательские переменные: они влияют на текущую среду текущего пользователя системы. Они могут быть удалены, изменены и добавлены любым системным пользователем. Они используются установкой Windows некоторыми программами и пользователями. Изменения этих переменных сохраняются в реестре и будут действовать немедленно.
blockquote>
Если вы попытаетесь вызвать переменную среды, которая не существует на вашем компьютере, у вас возникнут проблемы. Вы должны пытаться найти переменную, которая существует на вашей локальной машине, но не на главной машине вашего веб-сервиса.
Необходимость перезапуска IIS с помощью команды iisreset.
Я столкнулся с той же проблемой, и благодаря @sergserg я придумал это, и это сработало:
var value = Environment.GetEnvironmentVariable(key, EnvironmentVariableTarget.User)
Важным битом было использование EnvironmentVariableTarget.User
Перезапуск Visual Studio исправил его для меня (предполагая, что IIS Express также кэширует эти значения).