我使用ASP.Net Core 3.1,并将其部署在Linux上的Azure App Service(Web)上。
问题是,当我在Azure App Service上部署代码时,出现错误消息:
Unhandled exception. System.UriFormatException: Invalid URI: The hostname could not be parsed.
at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
at System.Uri..ctor(String uriString)
at Microsoft.Azure.KeyVault.KeyVaultClient.GetSecretsWithHttpMessagesAsync(String vaultBaseUrl, Nullable`1 maxresults, Dictionary`2 customHeaders, CancellationToken cancellationToken)
at Microsoft.Azure.KeyVault.KeyVaultClientExtensions.GetSecretsAsync(IKeyVaultClient operations, String vaultBaseUrl, Nullable`1 maxresults, CancellationToken cancellationToken)
at Microsoft.Extensions.Configuration.AzureKeyVault.AzureKeyVaultConfigurationProvider.LoadAsync()
at Microsoft.Extensions.Configuration.AzureKeyVault.AzureKeyVaultConfigurationProvider.Load()
at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
at Microsoft.Extensions.Hosting.HostBuilder.BuildAppConfiguration()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at ZHFSoftware.Program.Main(String[] args) in / home / runner / work / ZHFSoftware / ZHFSoftware / ZHFSoftware / Program.cs:line 19
ptrace(ATTACH, 29) FAILED Operation not permitted
我知道这与PERMISSION错误有关。当我运行网络时,
:( Application Error
If you are the application administrator, you can access the diagnostic resources.
我可以在DEVELOPMENT和PRODUCTION中运行代码,但可以在LOCALHOST上运行(并且我可以获得Azure密钥库)但不在Deploy版本中。(https://.azurewebsites.net/)=>出现错误
我已经根据手册设置了权限:
https://docs.microsoft.com/en-us/azure/key-vault/managed-identity
https://wakeupandcode.com/key-vault-for-asp-net-core-3-1-web-apps/
并且我遵循youtube手册:https://www.youtube.com/watch?v=k2VYcYS3EIA
但没有用。仍然错误。
任何帮助将不胜感激。谢谢。
今天,我解决了我的问题。
i从Visual Studio 2019预览版中“发布”我的Web项目。并配置“服务依赖项”,然后发布。
我的网站正在运行...
我推送到我的github,发现已添加此项目。“ serviceDependencies。-Web Deploy.json”
并且我打开文件,它包含:
{
"dependencies": {
"secrets1": {
"resourceId": "/subscriptions/<subscriptionId>/resourceGroups/<resGroudId>/providers/Microsoft.KeyVault/vaults/<Key Vault Name>",
"type": "secrets.keyVault",
"connectionId": "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONVAULT"
}
}
}
注意:手册来自https://docs.microsoft.com/en-us/azure/spring-cloud/spring-cloud-github-actions-key-vault非常有用。谢谢微软^^ /