如何在IIS中配置可直接下载PDF的链接以生成对应二维码
IIS静态文件托管配置方案
1. 修复域名解析异常
你收到的DNS_PROBE_FINISHED_NXDOMAIN报错属于域名解析失败问题,和IIS配置无关,优先按以下方式排查修复:
- 确认所使用的站点域名已在域名服务商处配置A记录,指向IIS服务器的公网IP
- 如果仅在内网场景使用,需要在公司内部DNS服务器添加对应解析记录,或在访问设备的hosts文件中手动绑定域名与服务器IP
- 可通过命令行执行
nslookup 你的站点域名验证解析结果是否与服务器IP一致
2. IIS静态文件托管配置(无需额外开发应用)
IIS原生支持静态文件托管,可直接实现类似云存储桶的文件访问能力,按以下步骤配置即可:
2.1 配置虚拟目录权限
右键已创建的docs虚拟目录,依次选择【编辑权限】-【安全】选项卡,添加IUSR和IIS_IUSRS两个系统用户,为其开放读取和运行、列出文件夹内容、读取权限。
2.2 配置MIME类型
避免IIS无法识别PDF等文件格式,导致访问报错:
- 打开IIS管理器,选中目标站点,双击打开【MIME类型】功能
- 确认存在
.pdf后缀对应的配置,MIME值为application/pdf,如不存在手动添加即可 - 如需托管其他格式文件,按需添加对应MIME规则即可,常见配置如下:
- .docx:
application/vnd.openxmlformats-officedocument.wordprocessingml.document - .xlsx:
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
- .docx:
2.3 配置请求筛选规则
打开站点的【请求筛选】功能,确认需要托管的文件后缀没有被禁止访问,如有对应禁止规则直接移除即可。
2.4 可选:强制文件直接下载
如果希望用户扫码后直接下载文件,而非在浏览器内预览,可以在docs目录下新增web.config文件,写入以下配置:
<configuration> <system.webServer> <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" /> <remove fileExtension=".pdf" /> <mimeMap fileExtension=".pdf" mimeType="application/octet-stream" /> </staticContent> </system.webServer> </configuration>
配置全部完成后重启IIS站点,访问你的站点域名/docs/对应文件名.pdf即可正常获取文件,直接将该链接生成二维码放置在宣传册上即可实现无接触领取需求。
内容的提问来源于stack exchange,提问作者Logan Kitchen
相关产品推荐
相关产品推荐

