Я обнаружил, что установка пакета Nuget Microsoft.IdentityModel.Token давала мне везде одну и ту же версию.
Теперь он работает, но выдает новая ошибка, на этот раз ошибка выполнения:
Код: Выделить всё
The type initializer for System.IdentityModel.Tokens.Jwt.JsonExtensions
threw an exception.
at System.IdentityModel.Tokens.Jwt.JsonExtensions.get_Serializer()
Теперь я застрял здесь .
Исходное сообщение:
Я работаю над приложением веб-API, разработанным в DotNet 6, которое используется в 3 разных местах, одно только для разработки. Они все находятся на одном сервере.
Однако работает только один, а остальные выдают такую ошибку:
Код: Выделить всё
Could not load file or assembly 'Microsoft.IdentityModel.Tokens,
Version=6.29.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
The system cannot find the file specified.
Код: Выделить всё
string key = "123456789..."
var securityKey = new Microsoft.IdentityModel.Tokens.SymmetricSecurityKey(Encoding.UTF8.GetBytes(key));
var credentials = new Microsoft.IdentityModel.Tokens.SigningCredentials(securityKey,
SecurityAlgorithms.HmacSha256Signature);
// this line causes load of the DLL which causes the error:
JwtHeader header = new JwtHeader(credentials); // this line is the first to cause this.
При использовании предыдущей версии ошибок нет.
Имейте в виду, что ошибка возникает во время загрузки, а не при выполнении.
Просматривая сеть, я нашел это среди других страниц, предлагающих то же решение:
Не удалось загрузить файл или сборку. Проблема с Microsoft.IdentityModel.Tokens
Предлагается добавить это в файл .csproj:
Код: Выделить всё
true
Что это может быть?
Подробнее здесь: https://stackoverflow.com/questions/774 ... ns-problem