【问题标题】:IIS Express Not Serving Static Files Over Basic AuthenticationIIS Express 不通过基本身份验证提供静态文件
【发布时间】:2017-06-04 16:22:00
【问题描述】:

我有一个 ASP.NET WEB API 2 应用程序,它被配置为使用 Windows 集成身份验证,并且运行正常。

当我将身份验证模式更改为基本身份验证模式时,IIS Express 不会提供任何静态文件。相反,它返回 500。像 aspx 之类的其余文件都可以正常提供。

任何想法为什么会发生这种情况?

我使用的是 Visual Studio 2013,但也在 Visual Studio 2015 上尝试过,得到了相同的结果。

PS:当部署在完整的 IIS 实例上时,静态文件会得到很好的服务。

PS2:我的 web.config 中有以下内容:

<staticContent>
  <remove fileExtension=".woff2" />
  <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
  <clientCache cacheControlMode="DisableCache" />
</staticContent>

更新:如果我删除

<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />

部分,IIS Express 提供除 .woff2 文件之外的所有静态内容,如果我保留它,它不会提供任何静态文件。

提前致谢

【问题讨论】:

    标签: c# asp.net iis iis-express static-content


    【解决方案1】:

    经过研究,我发现这是由于 UAC。

    更多信息请参考this

    【讨论】:

      【解决方案2】:

      我在尝试加载 babylon js 文件时遇到了完全相同的问题,我发现问题似乎是 ISS 不喜欢“侧面加载”其他 mime 类型。

      现在要解决此问题,您可能会弄乱您计算机的 UAC,或者您可以将这些 mime 类型添加到您的应用程序主机文件中

      %userprofile%\documents\iisExpress\config\applicationhost.config

      我将我的添加到已经存在的 mime 类型的顶部:

      <staticContent lockAttributes="isDocFooterFileName">
              <mimeMap fileExtension=".json" mimeType="application/text" />
              <mimeMap fileExtension=".dds" mimeType="application/dds" />
              <mimeMap fileExtension=".tga" mimeType="application/tga" />
              <mimeMap fileExtension=".fx" mimeType="application/fx" />
              <mimeMap fileExtension=".babylon" mimeType="application/babylon" />
              <mimeMap fileExtension=".babylonmeshdata" mimeType="application/babylonmeshdata" />
              <mimeMap fileExtension=".babylonbinarymeshdata" mimeType="application/babylonbinarymeshdata" />
              <mimeMap fileExtension=".cache" mimeType="text/cache-manifest" />
              <mimeMap fileExtension=".323" mimeType="text/h323" />
              .....
      

      【讨论】: