Asp.net core ASPNetCore MVC路由允许服务器处理特定路由
这是一个以前未解决的问题 在远程web主机上,我是一个用户。这是一个共享的托管环境。主机使用Plesk,我正在尝试修复我的AspNetCore应用程序,以允许我们加密的安装和自动更新 我确信AspNetCore应用程序正在干扰Let's Encrypt安装和自动续订,因为我可以创建一个空站点并安装Let's Encrypt证书,而当我使用“quickstart”AspNetCore应用程序创建一个新站点时,安装和续订失败 我怀疑主机可能被配置为将所有请求路由到Asp.net core ASPNetCore MVC路由允许服务器处理特定路由,asp.net-core,asp.net-core-mvc,plesk,lets-encrypt,Asp.net Core,Asp.net Core Mvc,Plesk,Lets Encrypt,这是一个以前未解决的问题 在远程web主机上,我是一个用户。这是一个共享的托管环境。主机使用Plesk,我正在尝试修复我的AspNetCore应用程序,以允许我们加密的安装和自动更新 我确信AspNetCore应用程序正在干扰Let's Encrypt安装和自动续订,因为我可以创建一个空站点并安装Let's Encrypt证书,而当我使用“quickstart”AspNetCore应用程序创建一个新站点时,安装和续订失败 我怀疑主机可能被配置为将所有请求路由到/well-known/目录,再路由
/well-known/
目录,再路由到我无权访问的虚拟目录(等待主机的响应)
我所接触到的或提供的所有解决方案都需要对服务器进行某种形式的管理访问,这在我的情况下不是一种解决方案。我是一个用户
解决方案之一是配置路由,并让应用程序为请求的质询密钥提供服务。因为我没有访问(可能)别名目录的权限,所以我不能让MVC以这种方式处理路由
我能想到的唯一一件事,就是以某种方式配置MVC路由,这样当它收到请求时,
/。众所周知的/
就是将请求传递给服务器。文字传递路由,用于确保MVC路由不受干扰,不做任何事情,但不停止请求,只让服务器处理请求。这可能吗?主机找到了解决方案。这是一个IIS配置问题
在目录/.well-known/
中创建一个名为web.config
web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="aspNetCore" />
</handlers>
</system.webServer>
</configuration>
我不确定这到底是做什么的,但它似乎将aspNetCore排除在处理对该目录的任何调用之外。我不知道Plesk的情况,但在IIS web.config文件中,您必须为Let's Encrypt添加一条规则。默认情况下,静态文件将从/wwwroot子目录提供,因此请求可能会被路由到/wwwroot/.well,并生成404s。这在另一篇文章中有介绍。我的主机虚拟目录中没有可见的/.well-known/文件夹,因此是的,我检查了wwwroot子文件夹以及所有子目录,这就是为什么我认为它是一个别名配置的服务器端。我无法更改服务器配置,也不相信主机会更改其配置。因此,要么我找到一个解决办法,要么我更换主机提供商。