做了一个DotNet Core的MVC项目,里面采用了IdentityServer4。
初始化的时候需要一个证书。
services.AddIdentityServer() .AddSigningCredential(new X509Certificate2("test.pfx", "test")) .AddInMemoryIdentityResources(Configuration.IdentityResources) .AddTestUsers(Configuration.Users) .AddInMemoryClients(Configuration.Clients) .AddInMemoryApiResources(Configuration.ApiResources());
暂时把证书放在了项目根目录下。
本地测试正常。打算发布到一个Server 2012 的服务器上(虚拟机)。
发布以后报错,说是找不到证书的文件。
我的本机的项目是在D:/MvcTest里,
但是虚拟机里发布在C:/Website里。
开始日志里显示的还是找不到“D:/MvcTest/test.pfx”找不到。
这到底是为什么?已经发布到虚拟机里了,为什么还是在找我的开发环境里的地址?这个地址不应该是计算出来的么?
使用 Path.GetFullPath
试试
.AddSigningCredential(new X509Certificate2(Path.GetFullPath("test.pfx"), "test"))