IIS无权访问证书存储区

时间:2018-08-16 23:48:44

标签: .net iis x509certificate iis-express

IIS Exrepss vs IIS 10

我对IIS或Visual C#不太熟悉,

但是最近我想将服务控制器包装在我们可以在云应用中使用的Web服务的.dll文件中。

我写了一个简短的脚本,用C#将信息发布到Http WebAPi上,并将依赖程序集的功能包装在其中。

我可以在本地计算机上访问证书存储。即使当我运行app.exe或从IIS Express在localhost:5000中运行它时,它也可以作为Web应用程序看到证书密钥库。

当我从IIS 10或服务器公共IP运行它时,它无法识别证书。

  

该映像在服务器内的同一本地主机中。从左侧的webbapp.exe和右侧的IIS10在IIS Express上运行。

是否知道与本地IIS Express进行比较时IIS出了什么问题?我可以做些事来修复它,还是应该找到其他解决方法。

1 个答案:

答案 0 :(得分:0)

正如@LexLi建议的那样,IIS仅限于对KeyStore的访问。配置正在运行,因此dll试图访问

X509Store(StoreName.My, StoreLocation.CurrentUser);

问题在于,出于安全目的,ISS无法访问该用户。 经过几次调整后,我更改为:

X509Store(StoreName.Root, StoreLocation.LocalMachine);

在运行的应用程序池的“高级设置”下的IIS 10“应用程序池”中。我做了以下

Identity: LocalSystem
Load User Profile: True

一切似乎都在工作。