2016-09-07 48 views
17

我需要在我的web.config文件中添加一个位置元素,但路径以一个点开始(并且我不认为我可以更改该路径,它适用于letsencrypt自动化)。在web.config中有一个点的路径<location>

如果我让点像<location path=".well-known/acme-challenge"></location>一样,网站根本不会启动(我认为web.config文件根本就没有被解析,因为我得到的页面要求我配置customErrors,但它已经是配置和通常工作正常)

如果我删除点,就像在<location path="well-known/acme-challenge"></location> web.config文件被正确加载,但当然,这并不帮助我在我希望的位置配置任何东西。

最终目标是仅在此路径上禁用基本身份验证(我需要其他站点);我甚至不知道我是否可以在<location>元素中设置它。

+0

对于它的价值,我通过在整个站点上删除基本身份验证来“解决”我的问题(无论如何,这是暂时的,直到最终的身份验证系统实施)。仍然有兴趣知道是否有另一种解决方案。 – youen

+3

在点文件夹(.well-known)文件夹中始终存在创建单独的web.config的可能性。 –

+0

我想第二个Ondrej的建议。点是禁止位置的起始字符,但您可以将配置文件放入该文件夹作为有效的解决方法。 –

回答

8

我有一个类似的问题,我有一个ASP.NET窗体网站,强制在所有页面上进行身份验证。

要在公认的答案扩大,这里是确切的web.config我放在/.well-known文件夹(不是/.well-known/acme-challenge文件夹):

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer> 
    <!-- This will stop any redirects you have at the higher level --> 
    <httpRedirect enabled="false" /> 

    <!-- This will stop any integrated mode settings you have at the higher level --> 
    <validation validateIntegratedModeConfiguration="false"/> 
    </system.webServer> 

    <!-- This will allow unauthenticated users to acme-challenge subfolder --> 
    <location path="acme-challenge"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 
</configuration> 

添加此文件后,我能够使用EcdsaAcmeNet在IIS中使用Lets Encrypt与站点。

3

正如Ondrej Svedjdar在评论中所建议的,解决方案非常简单,我没有考虑它。

只需在需要它的文件夹中添加另一个web.config文件即可。

相关问题