IIS下调用证书出现异常的解决方法 (C#)

程序发布前,跑在vs上是没问题的,当发布后,程序就报错了。通过系统日志找到了错误所在:证书调用时出现了异常。原因是:在IIS上调用证书是需要配置的,具体配置如下:

一. 确保证书已安装

1. 点击 [开始] -> [运行] -> 键入[mmc] 进入“控制台”界面 -> 选择[文件] -> [添加/删除管理单元]

2. 选择[证书] -> [计算机账户] -> [下一步] -> [完成]

3. 选择[个人] -> [证书] -> [所有任务] -> [导入] 。如果证书已存在则跳过此步骤,不用做导入操作。

二. 修改IIS上对应项目的程序池标识

1. 打开IIS -> 选择[应用程序池] -> 选中对应的项目 -> 选择右侧的[高级设置]

2. 找到[进程模型] -> 修改[标识]属性值

3. 将 ApplicationPoolIdentity 修改为 NetworkService

三. 对证书进行授权

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. 按[回车]键,执行指令

成功后结果如下图:

关于指令的一点说明:

winhttpcertcfg -g -c LOCAL_MACHINE\MY -s "证书名称" -a "IIS程序池标识"

-g 代表授权

-c 代表证书在计算机上安装存储位置

-s "证书的名称" (证书名称如何查看?如下图:)

-a "IIS程序池标识" (上面我们将iis程序池标识改成了NetworkService) 所以是 -a "NetworkService"

参考博文:记ASP.NET 使用 X509Certificate2 出现的一系列问题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • asp.net iis7默认文档错误异常的解决方法

    默认文档异常错误 当修改默认文档时IIS提示信息 执行此操作时出错. 详细信息: 文件名: \\?\E:\DNN\web.config 行号: 102 错误: 在唯一密钥属性"value"设置为"Default.aspx"时,无法添加类型为"add"的重复集合项 错误原因:是IIS中已经设置了默认文档为default.aspx,这个时候就出现的冲突,引发的异常 解决方法:在项目的web.config文件中找到添加文档节点<add />

  • startssl申请SSL证书 并且配置 iis 启用https协议

    先在 startssl.com 这个站点上申请一个免费的1年的 ssl证书 申请步骤比较简单, 你要先验证一个使用这个证书的域名, 会把验证码发送到域名注册邮箱里. 接下来是输入完整域名来验证SSL 证书, 我填写的是一个二级域名 然后就填写证书签名, Certificate Signing Request 然后可以下载一个 startcomtool.exe 这个工具 点击generate CSR 然后将右侧的信息复制粘贴到 StartCom申请站点里,就完成了证书的申请,然后进入下载页面选择你

  • 有了SSL证书,如何在IIS环境下部署https

    昨天各位小伙伴都很开心的领取了自己的SSL证书,但是大部分小伙伴却不知道如何部署,也许是因为第一次接触SSL这种高端的东西吧,不过个人觉得就是懒懒懒...本来小编也挺懒的,但是答应了各位小伙伴的,那么今天就教大家如何在IIS环境下部署HTTPS证书吧.(建议在PC端阅读) 1.首先我们要取走我们的证书,保存在我们本地的电脑里,然后复制到服务器即可. 2.取走后接下来干嘛?当然是打开文件看看里面有些什么啊.我们找到IIS那个压缩包并解压. 3.解析得到pfx文件,也就是我们需要部署域名的证书文件.

  • 阿里云申请的 CA Wosin 证书,在Windows iis下导入证书的步骤分享

    阿里云申请后, 你可以下载一个压缩文件, 里面有两个文件 key & pem 文件. 这两个文件需要 OpenSSL 命令转为 PFX 文件, 导入到IIS中. 这个是阿里云16年才上的一个功能, 不完善, 连文档都没有问了好久, 给了一个这样的文档 https://help.aliyun.com/knowledge_detail/13086385.html 里面有这句话 3. 将PEM/KEY/CRT转换为PFX 使用OpenSSL工具,可以将密钥文件KEY和公钥文件CRT转化为PFX文件.

  • win2003架设证书服务器及让IIS6启用HTTPS服务

    现在到处是劫持网址加广告的,这样通过https访问,就不用担心了,比较适合对安全级别要求高的网站,当然老站更需要开启https了. 无废话图文教程,教你一步一步搭建CA服务器,以及让IIS启用HTTPS服务. 一.架设证书服务器(CA服务) 1.在系统控制面板中,找到"添加/删除程序",点击左侧的"添加/删除windows组件",在列表中找到"证书服务",安装之. 2.CA类型,这里有四种选择,这里以"独立根CA"为介绍. 3

  • IIS6.0出错脚本引擎异常处理方法

    文献一: 1. 如果您的操作系统是windows server 2003的话,请根据以下网站的信息获取hotfix.由于hotfix并不能在网站中直接下载,您也可以拨打微软为合作伙伴提供的8008203800技术支持专线获得. An access violation error may occur in the W3wp.exe process after you install hotfix 908521 in Windows Server 2003 with Service Pack 1 h

  • IIS7.0 Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站的教程图文详解

    配置环境 Windows版本:Windows Server 2008 R2 Enterprise Service Pack 1 系统类型: 64 位操作系统 了解HTTPS 为什么需要 HTTPS ? 在我们浏览网站时,多数网站的URL都是以HTTP开头,HTTP协议我们比较熟悉,信息通过明文传输; 使用HTTP协议有它的优点,它与服务器间传输数据更快速准确; 但是HTTP明显是不安全的,我们也可以注意到,当我们在使用邮件或者是在线支付时,都是使用HTTPS; HTTPS传输数据需要使用证书并对

  • IIS下调用证书出现异常的解决方法 (C#)

    程序发布前,跑在vs上是没问题的,当发布后,程序就报错了.通过系统日志找到了错误所在:证书调用时出现了异常.原因是:在IIS上调用证书是需要配置的,具体配置如下: 一. 确保证书已安装 1. 点击 [开始] -> [运行] -> 键入[mmc] 进入"控制台"界面 -> 选择[文件] -> [添加/删除管理单元] 2. 选择[证书] -> [计算机账户] -> [下一步] -> [完成] 3. 选择[个人] -> [证书] -> [

  • 解析Silverlight调用WCF/Rest异常的解决方法

    新建Rest服务接口: 复制代码 代码如下: [ServiceContract]public interface IService1{    [OperationContract]    string GetData(int value);} 接着新建一个服务实现类: 复制代码 代码如下: public class Service1 : IService1{    public string GetData(int value)    {        int i = 0;        int

  • java中double类型运算结果异常的解决方法

    问题: 对两个double类型的值进行运算,有时会出现结果值异常的问题.比如: System.out.println(19.99+20); System.out.println(1.0-0.66); System.out.println(0.033*100); System.out.println(12.3/100); 输出: 39.989999999999995 0.33999999999999997 3.3000000000000003 0.12300000000000001 解决方法: J

  • layui表格 返回的数据状态异常的解决方法

    最近用到了layui表格组件,结果发现数据返回状态异常 在网上查询了下是因为需要转成固定个格式 然而layui的table默认返回的数据格式为: response: { //定义后端 json 格式,详细参见官方文档 code: 0, msg: "", count: 1000, data: [] } 网上看了有些方法是转成json数据 JSONObject obj=new JSONObject(); //前台通过key值获得对应的value值 obj.put("code&qu

  • vue 项目build错误异常的解决方法

    在生成vue项目的时候,出现如下错误 ERROR in static/js/index.d66d806fcdd72b36147b.js from UglifyJs Unexpected token: punc (() [src/components/Hello.vue:26,0][static/js/index.d66d806fcdd72b36147b.js:34,6] ERROR in static/js/cell.89bb6f1195b769a2c949.js from UglifyJs U

  • python多线程调用exit无法退出的解决方法

    python启用多线程后,调用exit出现无法退出的情况,原因是exit会抛出Systemexit的异常,如果在exit外围调用了try,就会出现ctrl+c两次才能退出的情况 解决方法: thread.setDaemon(True) thread.start() 线程启动前设置setDaemon(True) 以上这篇python多线程调用exit无法退出的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • windows下 兼容Python2和Python3的解决方法

    windows下同时安装了python2和python3时,都可以配置环境变量,如果在命令行里输入python命令,windows会去环境变量里寻找Python的安装位置,如果先找到pytoon2的,那么此时默认用python2,如果先找到python3,那么此时默认用python3. python命令调用 如果想要指定使用python2还是Python3,需要使用如下命令: py -2 启动python2 py -3 启动python3 注:使用此命令,python2和python3都需要配置

  • 详解tensorflow2.x版本无法调用gpu的一种解决方法

    最近学校给了一个服务器账号用来训练神经网络使用,服务器本身配置是十路titan V,然后在上面装了tensorflow2.2,对应的python版本是3.6.2,装好之后用tf.test.is_gpu_available()查看是否能调用gpu,结果返回结果是false,具体如下: 这里tensorflow应该是检测出了gpu,但是因为某些库无法打开而导致tensorflow无法调用,返回了false,详细查看错误信息可以看到一行: 可以看到上面几个文件都顺利打开了,但是最后一个libcudnn

  • Java基于Runtime调用外部程序出现阻塞的解决方法

    本文实例讲述了Java基于Runtime调用外部程序出现阻塞的解决方法, 是一个很实用的技巧.分享给大家供大家参考.具体分析如下: 有时候在java代码中会调用一些外部程序,比如SwfTools来转换swf.ffmpeg来转换视频等.如果你的代码这样写:Runtime.getRuntime().exec(command),会发现程序一下就执行完毕,而在命令行里要执行一会,是因为java没有等待外部程序的执行完毕,此时就需要使用阻塞,来等待外部程序执行结果: InputStream stderr

  • java.net.MalformedURLException异常的解决方法

    java.net.MalformedURLException at java.net.URL.<init>(URL.java:619) at java.net.URL.<init>(URL.java:482) at java.net.URL.<init>(URL.java:431) 代码中URL url = new URL(someUrl);这一行出现java.net.MalformedURLException异常 解决方法是,对someUrl中的参数名和参数值都URL

随机推荐