今天在部署asp.net core網站時,因為調用到阿里雲的api,api的參數需要加密簽名,系統報出了如下錯誤:
warn: Microsoft.Extensions.DependencyInjection.DataProtectionServices[59]
Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits.
warn: Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository[50]
Using an in-memory repository. Keys will not be persisted to storage.
fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[0]
上網搜了下應該是某些安全機制引起的吧。
具體請自行查看一下文章:Asp.net core Data Protection : https://docs.asp.net/en/latest/hosting/dataprotection.html
github: https://github.com/aspnet/DataProtection/issues/102
反正我是大致看了下這兩篇文章后找到解決方案的,但是詳細原因嘛,英文還不過關。
使用 PowerShell執行第一篇文章提供的腳本。注意,Powershell 有可能會提示“此系統中禁止執行腳本”,那么按照提示先執行“set-executionpolicy remotesigned”命令。
執行腳本會提示輸入Application Pool名字,輸入你網站對應的應用程序池就可以了。如果有多個網站對應多個Application Pool ,那么要分別注冊。
執行后可能會出現以下錯誤:
沒關系,注冊是已經成功的。反正我的網站在這之后就能正確訪問了。