68

我正在IIS 8使用Windows 8.1. 我有一个XML文件,我需要通过(servername)/(path)访问它

(path)由其他人预定义,不包含扩展名。我尝试了删除 .xml 文件的文件名的简单解决方案,但是IIS returns HTTP Error 404.3 - Not Found

在返回错误的“物理路径”中是正确的文件路径,当我复制粘贴到运行时会打开正确的文件。

请让我知道这是否可能。

4

3 回答 3

133

假设 (path) 是您机器上的一个物理目录,请在该目录中创建一个新的 web.config 文件,其中包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <system.webServer>
         <staticContent>
             <mimeMap fileExtension="." mimeType="text/xml" />
         </staticContent>
     </system.webServer>
 </configuration>

您告诉 IIS,仅对于此目录,任何没有以其他方式定义的扩展名(在 MIME 类型中)的文件都应被视为 xml 文件。同一路径中的其他文件类型应该仍然有效。

如果您安装了 Windows 功能IIS Management Scripts and Tools,则可以使用 PowerShell 创建这样的 web.config 文件:

Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site/.well-known'  -filter "system.webServer/staticContent" -name "." -value @{fileExtension='.';mimeType='text/xml'}

在此示例Default Web Site中是网站的名称,并且.well-known是该网站下的目录。

于 2013-11-13T20:22:08.003 回答
18

它也可以在 IIS 6 中完成/不使用web.config,而是使用管理 GUI 在.此处添加扩展的 MIME 类型:

在此处输入图像描述

例如,要提供.well-known/acme-challenge令牌,请创建一个名为 的虚拟目录.well-known,并让它从物理目录中获取其内容(在 Windows 中,该目录的名称不能带有前导点)。然后在此目录中text/plain为扩展添加 MIME 类型,您可以为当前由旧 IIS 提供服务的域.手动获取新证书。letsencrypt

于 2015-12-02T13:31:39.987 回答
9

手动更改配置有时可能会有风险。IIS 提供了一种通过 IIS 管理器更新 MIME 类型的方法,如下所示。这些快照适用于安装在 Windows 10 机器上的 IIS v10:

  1. 转到您网站的虚拟目录的 MIME 类型功能:

在此处输入图像描述

  1. 设置 mime 类型以支持所有没有扩展名的文件:

在此处输入图像描述

web.config正如@PeterHahndorf 在他的帖子中所建议的那样,这些步骤有效地保存了对您的网站或虚拟目录(在您的网站下)的更改。

于 2017-05-30T11:07:49.927 回答