IIS Express 配置中的 allowdoubleescaping = "true" 不起作用

mz1*_*378 5 visual-studio iis-express blazor

我收到 HTTP错误 404.11 - 未找到请求过滤模块配置为拒绝包含双转义序列的请求。 当我向 Blazor 中的 .razor 页面发送请求时出错,链接是动态构建的并发送到用户电子邮件:

string confirmationLink = $"{HttpContext.Request.Scheme}://{Request.Host}/account/confirmemail/{System.Web.HttpUtility.UrlEncode(user.Id)}/{System.Web.HttpUtility.UrlEncode(confirmationToken)}";
Run Code Online (Sandbox Code Playgroud)

我在五个地方修改了 IIS Express 配置文件:

  • “C:\Windows\System32\inetsrv”中的 web.config
  • “C:\Program Files\IIS Express\AppServer”中的 applicationhost.config
  • “C:\Program Files\IIS Express\config\templates\PersonalWebServer”中的 applicationhost.config
  • “C:\Program Files (x86)\IISExpress\AppServer”中的 applicationhost.config
  • “C:\Program Files(x86)\IIS Express\config\templates\PersonalWebServer”中的 applicationhost.config

在所有情况下,我都修改了

<requestFiltering allowDoubleEscaping="true">
Run Code Online (Sandbox Code Playgroud)

“web.server”“安全”部分中的标记。但我仍然收到错误。有什么解决办法吗?

Dev*_*Dan 7

这对我有用...

  1. 为了找到applicationhost.configIISExpress的文件,我IIS Express在系统托盘(Windows 10 的右下角)中查找了图标。
  2. 我右键单击 IIS Express 图标并单击"Show All Applications"
  3. Running Applications我单击Site Name要修改的配置文件的列表中。
  4. 单击站点名称后,Config:下方会显示该词。
  5. 我点击了右边的路径Config:applicationhost.config在 Visual Studio 中打开了文件。
  6. 在那里我点击Ctrl-F并搜索<requestFiltering>我更改为<requestFiltering allowDoubleEscaping="true">