IIS下調(diào)用證書出現(xiàn)異常的解決方法 (C#)
程序發(fā)布前,跑在vs上是沒問題的,當(dāng)發(fā)布后,程序就報錯了。通過系統(tǒng)日志找到了錯誤所在:證書調(diào)用時出現(xiàn)了異常。原因是:在IIS上調(diào)用證書是需要配置的,具體配置如下:
一. 確保證書已安裝
1. 點擊 [開始] -> [運行] -> 鍵入[mmc] 進入“控制臺”界面 -> 選擇[文件] -> [添加/刪除管理單元]
2. 選擇[證書] -> [計算機賬戶] -> [下一步] -> [完成]
3. 選擇[個人] -> [證書] -> [所有任務(wù)] -> [導(dǎo)入] 。如果證書已存在則跳過此步驟,不用做導(dǎo)入操作。
二. 修改IIS上對應(yīng)項目的程序池標識
1. 打開IIS -> 選擇[應(yīng)用程序池] -> 選中對應(yīng)的項目 -> 選擇右側(cè)的[高級設(shè)置]
2. 找到[進程模型] -> 修改[標識]屬性值
3. 將 ApplicationPoolIdentity 修改為 NetworkService
三. 對證書進行授權(quán)
1. 下載并安裝 winhttpcertcfg.exe 工具(Windows HTTP Services Certificate Configuration Tool)。安裝完成后該工具在C:\Program Files (x86)\Windows Resource Kits\Tools 或者C:\Program Files\Windows Resource Kits\Tools 文件夾下。
2. 打開[開始] -> [運行] ->鍵入[cmd]
3. 在控制臺中輸入指令 cdC:\Program Files (x86)\Windows Resource Kits\Tools 按[回車]鍵,進入工具所在目錄
4. 進入指定目錄后,輸入指令 winhttpcertcfg -g -c LOCAL_MACHINE\MY -s "證書名稱" -a "IIS程序池標識"
5. 按[回車]鍵,執(zhí)行指令
成功后結(jié)果如下圖:
關(guān)于指令的一點說明:
winhttpcertcfg -g -c LOCAL_MACHINE\MY -s "證書名稱" -a "IIS程序池標識"
-g 代表授權(quán)
-c 代表證書在計算機上安裝存儲位置
-s "證書的名稱" (證書名稱如何查看?如下圖:)
-a "IIS程序池標識" (上面我們將iis程序池標識改成了NetworkService) 所以是 -a "NetworkService"
參考博文:記ASP.NET 使用 X509Certificate2 出現(xiàn)的一系列問題
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#中的自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換
這篇文章主要介紹了C#中的自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-08-08Unity的IPreprocessBuild實用案例深入解析
這篇文章主要為大家介紹了Unity的IPreprocessBuild實用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05