c# - WindowsCryptographicException:在 Azure 中发布应用程序时拒绝访问
问题描述
我有一个基于 Aridka OpenIddict 示例的非常简单的 Web 应用程序,当涉及到授权控制器和启动类时,它几乎是一个副本,在返回的资源类型方面存在一些差异,但令牌机制完全按照样本。
该应用程序在我的开发环境中运行良好(数据库在 Azure 中,但应用程序在我的机器上运行)。但是,我已将它发布到 Azure 只是为了查看它是否在托管在云提供商中后仍然有效,并且它实际上返回错误并且无法启动。这是堆栈跟踪:
Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: Access is denied.
at Internal.Cryptography.Pal.StorePal.FromSystemStore(String storeName, StoreLocation storeLocation, OpenFlags openFlags)
at System.Security.Cryptography.X509Certificates.X509Store.Open(OpenFlags flags)
at Microsoft.Extensions.DependencyInjection.OpenIddictServerBuilder.AddDevelopmentEncryptionCertificate(X500DistinguishedName subject)
at Microsoft.Extensions.DependencyInjection.OpenIddictServerBuilder.AddDevelopmentEncryptionCertificate()
at MyApp.Api.Startup.<>c.<ConfigureServices>b__4_4(OpenIddictServerBuilder options) in C:\Users\edm\OneDrive\MyAp\1\1\MyApp.Api\Startup.cs:line 75
at Microsoft.Extensions.DependencyInjection.OpenIddictServerExtensions.AddServer(OpenIddictBuilder builder, Action`1 configuration)
at MyApp.Api.Startup.ConfigureServices(IServiceCollection services) in C:\Users\edm\OneDrive\MyApp\1\1\MyApp.Api\Startup.cs:line 54
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.InvokeCore(Object instance, IServiceCollection services)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.<>c__DisplayClass9_0.<Invoke>g__Startup|0(IServiceCollection serviceCollection)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.Invoke(Object instance, IServiceCollection services)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.<>c__DisplayClass8_0.<Build>b__0(IServiceCollection services)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.UseStartup(Type startupType, HostBuilderContext context, IServiceCollection services)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass12_0.<UseStartup>b__0(HostBuilderContext context, IServiceCollection services)
at Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at MyApp.Api.Program.Main(String[] args) in C:\Users\edm\OneDrive\MyApp\1\1\MyApp.Api\Program.cs:line 16
我真的很感激任何帮助。我是 OpenId 的新手,所以如果这个问题太基本并且我应该先阅读其他资源,请不要犹豫分享参考资料。
谢谢!
埃德
解决方案
WEBSITE_LOAD_USER_PROFILE=1
在门户上添加应用程序设置。如果不起作用,请尝试第二种方法。
将证书添加到您的 Web 应用程序。
推荐阅读
- node.js - 创建新的角度项目错误
- python - PyCharm 错误:无法运行程序,错误=2,没有这样的文件或目录
- javascript - 如何为整个站点创建 ajax 函数?
- javascript - 角反应形式 - 复选框 - 使用现有数组初始化 formArray
- javascript - JavaScript 枚举关键字
- flutter - 无论页面如何都显示 Global SnackBar
- highcharts - 我的 highcharts 代码有什么问题?
- c++ - 如何从 C/C++ 程序在 Linux 终端上运行命令
- python - 图像显示在 tkinter 的错误屏幕上
- c++ - 在priority_queue的情况下运算符重载如何工作?