You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地IIS部署.NET API应用,静态文件访问404问题求助

解决IIS部署.NET API后静态文件直接访问404的问题
  • 先确认IIS的静态文件功能已安装
    打开「控制面板」→「程序和功能」→「启用或关闭Windows功能」,找到「Internet Information Services」→「万维网服务」→「常见HTTP功能」,勾选「静态文件」,确定完成安装。

  • 配置IIS站点的静态文件处理规则
    打开IIS管理器,找到你部署的对应localhost:4343的站点,双击站点内的「处理程序映射」,检查是否存在「StaticFile」处理程序,且其路径规则覆盖.pdf这类静态文件后缀。如果没有,右键点击「添加模块映射」:

    • 请求路径填*
    • 模块选择「StaticFileModule」
    • 名称设为StaticFile(或自定义名称),点击确定添加。
  • 给静态文件夹配置读取权限
    右键c:\web\Resources\Attachments文件夹,选择「属性」→「安全」,确保IIS应用池对应的身份(通常是IIS_IUSRS,或自定义应用池账户)拥有「读取」权限。若没有,点击「编辑」→「添加」,输入IIS_IUSRS,验证名称后确定,勾选「读取」权限。

  • 调整web.config配置(无需修改.NET代码)
    打开c:\web下的web.config文件,在<system.webServer>节点内添加以下配置,确保静态请求不被.NET路由拦截:

    <staticContent>
      <!-- 为PDF添加MIME类型,其他格式可参照添加 -->
      <mimeMap fileExtension=".pdf" mimeType="application/pdf" />
    </staticContent>
    <handlers>
      <!-- 让静态文件请求优先被处理 -->
      <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
    </handlers>
    <rewrite>
      <rules>
        <!-- 规则:匹配Resources/Attachments下的文件请求,直接返回不进入.NET路由 -->
        <rule name="StaticFiles" stopProcessing="true">
          <match url="^(Resources/Attachments/.*)$" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" />
          </conditions>
          <action type="None" />
        </rule>
      </rules>
    </rewrite>
    

    保存配置后重启IIS站点。

  • 测试访问
    重启站点后直接访问https://localhost:4343/Resources/Attachments/test.pdf,验证是否能正常打开文件。

内容的提问来源于stack exchange,提问作者Musaffar Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:22:21