最诚挚的问候。
我正在使用.net core 2.2和cors协议中的api应用程序,一切都进行得很好,直到我使用{{1}将api的端口从默认的https://localhost:5001
更改为https://localhost:5002
}}在UseUrls
https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.hosting.hostingabstractionswebhostbuilderextensions.useurls?view=aspnetcore-2.2
通过HostingAbstractionsWebHostBuilderExtensions
向api发送请求仍然有效,这意味着使用curl https://localhost:5002/api/values
方法导致cors验证无法正常进行吗?我需要额外的配置方法吗?
Program.cs
UseUrls
控制台日志:
namespace api {
public class Program {
public static void Main(string[] args) {
CreateWebHostBuilder(args)
/*===>*/.UseUrls("https://localhost:5002", "http://localhost:5003")
.Build()
.Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args).UseStartup<Startup>();
}
}
答案 0 :(得分:0)
System.IO.IOException:解密操作失败,请参阅内部异常。 ---> System.ComponentModel.Win32Exception:错误的证书处理过程
这是证书错误。当您通过HTTPS
和其他端口访问它时。
当将Kestrel或HTTP.sys用作面向公众的边缘服务器时,必须将Kestrel或HTTP.sys配置为在这两个服务器上侦听:
您需要在Startup.cs
app.UseHttpsRedirection();
在您的appsettings.json
{
"https_port": 5002, // whatever you like to use
}
更多info。
答案 1 :(得分:0)
我发现了问题。实际上,我是在使用Firefox进行测试的,它非常重视https证书(https://support.mozilla.org/en-US/kb/what-does-your-connection-is-not-secure-mean)。每次更改api的端口时,我都必须从Firefox访问api url以允许使用它,否则前端应用程序(正在使用axios)将失败,而没有给出任何解释。