【发布时间】:2018-06-06 07:01:52
【问题描述】:
我有一个正常工作的 ASP.NET Web 应用程序。我正在尝试使用 Let's Encrypt 启用 SSL,为此我的共享 Web 主机主机 (A2) 在 .well-known/acme-challenge 目录中添加了一个 web.config。 (这个 web.config 所做的只是将无扩展名的文件绑定到纯文本)。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension="." mimeType="text/plain" />
</staticContent>
</system.webServer>
</configuration>
问题在于子文件夹中仅存在 web.config 似乎会导致对该文件夹的任何资源请求失败,并返回 500 错误。我什至在这个文件夹中尝试了一个完全空的 web.config,但仍然会导致 500 错误。我的理解是 ASP.NET 应该支持子文件夹中的其他 web.configs,但我不知道为什么它不起作用。
我的根文件夹中有一个 web.config,它为无扩展名文件正确绑定,但 A2 Let's Encrypt 工具坚持将自己的添加到子文件夹中。我没有任何属性阻止在此 web.config 中覆盖。
我已广泛搜索如何解决此问题,但我看到的大多数解决方案都需要更改 IIS 配置。由于这是一个共享的网络主机,我对 IIS 的控制非常有限,所以这不是一个可行的选择。
【问题讨论】:
-
500错误的子代码是什么?通常只有在错误级别设置为详细时才能看到这一点。但知道它会很快缩小问题范围。
-
在逐个删除我的根 web.config 的部分后,我发现删除
staticContent部分允许子文件夹 web.config 正常工作。我不知道为什么这会导致问题,MSDN 文档没有说明它不支持覆盖。
标签: asp.net .net web-config