Я пытаюсь развернуть свой проект. net core 3.1 в debian, используя nginx в зависимости от времени выполнения. Разрабатывал на Windows, при отладке все работает нормально. Однако на производстве я застрял с 502 из-за этой ошибки;
System.InvalidOperationException: Type '' is not supported.
at Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ConfigureClients.GetClients()+MoveNext()
at Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ConfigureClients.Configure(ApiAuthorizationOptions options)
at Microsoft.Extensions.Options.OptionsFactory`1.Create(String name)
at Microsoft.Extensions.Options.OptionsManager`1.<>c__DisplayClass5_0.<Get>b__0()
at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
at System.Lazy`1.CreateValue()
at System.Lazy`1.get_Value()
at Microsoft.Extensions.Options.OptionsCache`1.GetOrAdd(String name, Func`1 createOptions)
at Microsoft.Extensions.Options.OptionsManager`1.Get(String name)
at Microsoft.Extensions.Options.OptionsManager`1.get_Value()
Я попытался добавить учетные данные для подписи в identityServer следующим образом;
var bytes = File.ReadAllBytes("/etc/myapp/IdentityServerCertificate.pfx");
var cert = new X509Certificate2(bytes, "PWD");
identityServer.AddSigningCredential(cert);
Также я добавил ключ к IdentityServer в appsettings.json;
"IdentityServer": {
"Clients": {
"MyClient": {
"Profile": "IdentityServerSPA"
},
"Key": {
"Type": "File",
"FilePath": "/etc/myapp/IdentityServerCertificate.pfx",
"Password": "PWD"
}
},
Но это не сработало. Кажется, это проблема, связанная с методом GetClients (), а не с сертификатом. Я также пробовал настраивать клиентов с помощью кода. Есть еще идеи? Спасибо!