我对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出了什么问题?我可以做些事来修复它,还是应该找到其他解决方法。
答案 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
一切似乎都在工作。