程序发布前,跑在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. 在控制台中输入指令 cd C:\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 出现的一系列问题

IIS 下调用证书出现异常解决方案 (C#)的更多相关文章

  1. Android 音乐播放器之--错误状态下调用导致的异常

    MediaPlayer必须在合适的状态下调用合适的方法,否则会出现异常,下面列出常见错误信息和说明: 1.E/MediaPlayer(11310): stop called in state 1 调用 ...

  2. NET环境下的未处理异常(unhandled exception)的解决方案

    NET环境下的未处理异常(unhandled exception )的解决方案 .Net 框架提供了非常强大的异常处理机制,同时对一些非托管代码很难控制的系统问题比如指针越界,内存泄漏等提供了很好的解 ...

  3. C#“必须先将当前线程设置为单个线程单元(STA)模式方可进行OLE调用”异常解决方案

    关于这类问题网上搜索会有很多解决方案,但基本的意思都相差不大,大致问题出于启用线程时调用类似剪贴板Clipboard.SetDataObject出错,我把我的测试代码展现下: 解决方案:只需将thre ...

  4. 在IIS下部署SSL证书实现HTTPS

    在IIS下部署SSL证书实现HTTPS   HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版.谷歌已经制定了一项长远的计划,它的最终目标是将所有通过HTTP协议呈现的网页标为“不安全” ...

  5. IIS部署SSL证书后提示不可信的解决方案

    IIS部署SSL证书后提示不可信的解决方案   本帖最后由 wosign-support3 于 2015-7-17 17:18 编辑 第一步:打开mmc——点击文件——添加删除管理单元——证书——计算 ...

  6. windows下基于IIS配置ssl证书遇到的坑

    前几天配置windows下基于IIS配置ssl证书 完全按照步骤执行 绑定https网址后,一直显示:无法访问此网站 检查了443端口,还有防火墙限制,没发现什么 足足困扰了我好几天 后来突然想到前不 ...

  7. MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动

    MVC图片上传详解   MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...

  8. IIS下发布关于Excel导入导出时遇到的问题集锦(转)

    问题描述 1.Excel每个工作薄(sheet)生成记录行数 2.asp.net关于导出Excel的一些问题的集锦 3.下载失败,临时文件或其所在磁盘不可写 4.未能加载文件或程序集“Microsof ...

  9. 解决在IIS中调用Microsoft Office Excel组件后进程无法正常退出的问题

    来源:http://www.cnblogs.com/ahui/archive/2013/03/05/2944441.html 有一个项目用到Excel组件产生报表,本以为这个通用功能是个很简单的cas ...

随机推荐

  1. POJ 2590

    #include<iostream> #include<algorithm> #define MAXN 1000000 using namespace std; unsigne ...

  2. BIND DNS拒绝服务漏洞 CVE-2016-2776修复

    接到此漏洞之后,略微查了一下相关描述,发现漏洞影响范围很大,可能造成的影响也很严重,于是着手进行修复. 漏洞的详细信息可见如下链接: http://www.cnvd.org.cn/flaw/show/ ...

  3. odoo开发笔记--前端搜索视图--按照时间条件筛选

    odoo在日常使用中,常会有这样的需要,比如,某个列表按照 日 .周.月.年来过滤搜索. 效果: 那么如何实现呢,如下是一段不同写法的样例代码,提供参考. <!--某模型 搜索视图--> ...

  4. KVM的VPS主机在Centos6.x下修改系统时间

    显示系统时间 # date "+%Y-%m-%d %H:%M:%S" 修改系统时区 # cp /usr/share/zoneinfo/Asia/Shanghai /etc/loca ...

  5. ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Cannot run program "hive": error=2, No such file or directory

    原因是hive没有设置环境变量 1,vim /etc/profile  (切换root用户) 2.source /etc/profile

  6. Linux-(type,vim)

    type命令 1.命令格式: type [参数][命令] 2.命令功能: 使用 type 命令轻松找出给定的命令是否是别名.shell 内置命令.文件.函数或关键字.也可以找到命令的实际路径. 3.命 ...

  7. JS pop push unshift shift的作用与区别

    白话JS中数组方法pop push unshift shift的作用与区别,通过本文,你大概能知道这四种数组方法的基本使用与大致区别. 首先,这四种方法会直接修改数组,请先记住这一点. 我们先把pop ...

  8. C字符串

    C字符串 C中的字符串是以空字符('\0')结尾的一个char数组,基本的实现字符串的方法有:字符串常量,字符串数组,char数组,char指针.字符串使用广泛,如与用户交互等处理自然语言的情况.C为 ...

  9. .37-浅析webpack源码之事件流make(4)

    赶紧完结这个系列咯,webpack4都已经出正式版了. 之前的代码搜索到js文件的对应loader,并添加到了对象中返回,流程如下: this.plugin("factory", ...

  10. 浅析Java源码之HttpServlet

    纯粹是闲的,在慕课网看了几集的Servlet入门,刚写了1个小demo,就想看看源码,好在也不难 主要是介绍一下里面的主要方法,真的没什么内容啊~ 源码来源于apache-tomcat-7.0.52, ...