【发布时间】:2016-07-04 12:44:37
【问题描述】:
我使用 ASP.NET 4.6.1 应用程序。
我使用 VS 2012,Windows 8.1 中的 IISExpress(开发环境)。
我使用 IIS 7.5 和 Windows Server 2008 R2(临时环境)。
我有一个用于下载 证书根 CA(.CER 文件)的 aspx 页面。
我尝试下载 CER 文件(使用 IE 和 Chrome),点击 aspx 页面中的链接:
https://preserver/v2/AccesoAlPortal/public/Certificado/Myrootca.cer
但我得到一个错误; IE页面中的奇怪字符:
0‚ 0‚õ Xºž,mè\OM‰"æn 0 *†H†÷ 0²1%0# *†H†÷
另存为 about 链接仅适用于 Chrome,不适用于 IE。
我在 IIS 站点 - Mime Types 中为 cer 添加 mime 类型:
应用程序/x-x509-ca-cert
但我得到了同样的错误。
我尝试像这样修改我的 web.config:
<location path="AccesoAlPortal">
<system.web>
<authorization configSource="Config\system.web.authorization.allow.config"/>
</system.web>
<system.webServer>
<staticContent>
<!--<mimeMap fileExtension=".cer" mimeType="application/x-x509-ca-cert" />-->
<mimeMap fileExtension=".cer" mimeType="application/octet-stream" />
</staticContent>
</system.webServer>
但我得到同样的错误,并且其他文件无法正确查看,例如 gif 文件。
我较旧的页面论坛 https://www.experts-exchange.com/questions/24467169/IIS-and-download-a-CER.html
我找到了这个:
IIS 6.0 有一个默认的 ISAPI 扩展映射,它将 .cer 指向 asp.dll。
ISAPI 过滤器优先于 MIME 类型,因此,它执行 .cer 通过 asp.dll,这导致文件显示在 浏览器屏幕,而不是被提示安装。
您可以将 .cer 重命名为 .der,也可以删除 ISAPI 延期。要删除,请转到 Web 内的主目录选项卡 站点,然后在应用程序设置下,单击配置,然后删除 .cer 的条目
将 .cer 重命名为 .der 有效。但我想要不重命名文件扩展名的解决方案。
在 IISExpress 和 IIS 的 applicationHost.config 中,我发现了这一行:
<handlers accessPolicy="Read, Script">
<add name="SecurityCertificate" path="*.cer" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />
如何删除 ISAPI 扩展?
不是 附带损害 没有 ISAPI 扩展?
【问题讨论】:
-
注释掉那一行。
-
@LexLi 是的,但是哪一个 Collateral damage 评论了该行?公司 IIS 服务器中有很多 asp.net 应用程序。
-
ASP.NET 与经典 ASP 无关。因此,此更改不会影响您的 Web 应用程序。如果您确定不会使用 IIS 的 ASP 组件,您甚至不需要安装它。
标签: asp.net download certificate iis-7.5 iis-express