Asp.net core .Net Core IdentityServer-类型不受支持
我正在尝试使用依赖于nginx运行时的方法将.NETCore3.1项目部署到debian。我在Windows上开发的,调试时一切正常。然而,在生产中,由于这个错误,我一直使用502Asp.net core .Net Core IdentityServer-类型不受支持,asp.net-core,nginx,.net-core,debian,identityserver4,Asp.net Core,Nginx,.net Core,Debian,Identityserver4,我正在尝试使用依赖于nginx运行时的方法将.NETCore3.1项目部署到debian。我在Windows上开发的,调试时一切正常。然而,在生产中,由于这个错误,我一直使用502 System.InvalidOperationException: Type '' is not supported. at Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ConfigureClients.GetClients()+MoveNext()
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()
我还在appsettings.json中为IdentityServer添加了一个键
"IdentityServer": {
"Clients": {
"MyClient": {
"Profile": "IdentityServerSPA"
},
"Key": {
"Type": "File",
"FilePath": "/etc/myapp/IdentityServerCertificate.pfx",
"Password": "PWD"
}
},
但它不起作用。这似乎是与GetClients()方法相关的问题,而不是与证书相关的问题。我还尝试通过代码配置客户端。还有别的想法吗?谢谢大家! 此问题是您在appsettings.json上配置客户端列表的方式造成的。客户端的配置文件属性应该是上列出的项目之一
此处出现错误此问题是您在appsettings.json上配置客户端列表的方式造成的。客户端的配置文件属性应该是上列出的项目之一
这里是引发错误的地方能否显示GetClient方法内容?这里似乎有问题。请查看@nahidf shared下面的github链接。能否显示GetClients方法内容?这里似乎有问题。请查看@nahidf shared下面的github链接。是的,但我仍然无法找出原因。我已经更新了上面的appsettings.json,以包含客户端的详细信息。它看起来很简单,但不起作用。我还尝试通过代码配置客户端。@Tany3450您使用什么配置发布到prod?例如,如果使用
prod
config发布,则需要使用appsettings.prod.json
。在这里查看详细信息,它的内容是appsettings.json,所以我认为它很好。我使用这个命令;dotnet发布--配置发布版-r linux-x64--自包含false@Tany3450我的问题更多的是关于是否在部署后复制并读取正确的应用程序设置,因为如果在本地工作但不在prod上工作意味着在部署过程中关闭了sth,请检查此答案以确保部署设置正确谢谢,这确实是因为密钥是在Clients下定义的,而不是在IdentityServer下定义的。我已经更新了上面的appsettings.json,以包含客户端的详细信息。它看起来很简单,但不起作用。我还尝试通过代码配置客户端。@Tany3450您使用什么配置发布到prod?例如,如果使用prod
config发布,则需要使用appsettings.prod.json
。在这里查看详细信息,它的内容是appsettings.json,所以我认为它很好。我使用这个命令;dotnet发布--配置发布版-r linux-x64--自包含false@Tany3450我的问题更多的是关于是否在部署后复制并读取正确的应用程序设置,因为如果在本地工作但不在prod上工作意味着在部署过程中关闭了sth,请检查此答案以确保部署设置正确谢谢,这确实是因为密钥是在客户机下定义的,而不是在IdentityServer下定义的。
"IdentityServer": {
"Clients": {
"MyClient": {
"Profile": "IdentityServerSPA"
},
"Key": {
"Type": "File",
"FilePath": "/etc/myapp/IdentityServerCertificate.pfx",
"Password": "PWD"
}
},