IIS Express未通过基本身份验证提供静态文件

时间:2017-01-19 20:07:31

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

我有一个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文件之外的所有静态内容,如果我将其保留,它不会提供任何静态文件。

提前致谢

2 个答案:

答案 0 :(得分:1)

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

有关详细信息,请参阅this

答案 1 :(得分:0)

我在尝试加载babylon js文件时遇到了完全相同的问题,我发现问题似乎是因为ISS并不喜欢被加载&#39;有额外的哑剧类型。

现在解决这个问题,您可能会为您的计算机弄乱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" />
        .....