首页 > 其他分享 >IIS使用反向代理,解决路径包含特殊字符无法访问的问题

IIS使用反向代理,解决路径包含特殊字符无法访问的问题

时间:2024-10-25 13:36:01浏览次数:1  
标签:ASP IIS URL 无法访问 代理 反向 Net 特殊字符

环境:

操作系统:Windows Server 2019
IIS版本:10

问题

试用Nocobase的时候,遇到400 Bad Request的报错。

 

直接访问的话,报错页面是非常常见的Runtime Error。

诡异

这个问题,在开发端(Windows 11)的IIS中不会出现。同样的IIS版本。

解决办法

先说结论,时间比较赶的朋友直接试这个就可以了。核心是不要让ASP.Net接管反向代理中的处理逻辑。

 

1、在反向代理网站使用的Application Pool,“托管管道模式”(Managed pipeline mode),选择“经典”(Classic)

2、在反向代理对应使用的Application Pool,.Net CLR版本(.Net CLR version),选择“无托管代码”(No Managed Code)

上述两个任选1个即可。

原因

主要的原因是,访问路径(/api/app:getLang?locale=zh-CN)中包括了特殊符号,冒号(:)。

这种路径的设计方式,违反了RFC 2396技术规范,所以在ASP.Net的处理过程中处于安全考虑进行了屏蔽。

Valid URL Characters - Introducing .NET 4.0: with Visual Studio 2010 [Book]

踩过的坑

如果是其他原因搜到这篇文章的,可以看一下其他的处理方法(我踩过的坑),希望有所帮助。

1、修改web.config

包括在httpRuntime节点添加配置,屏蔽对特殊字符的过滤。在rules中实现多双字节字符的过滤。

How to solve error "A potentially dangerous Request.Path value was detected from the client (:)." - Microsoft Q&A

2、修改注册表

在注册表 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters节点添加相应的DWORD值,主要是AllowRestrictedChars。

Http.sys registry settings for Windows - Internet Information Services | Microsoft Learn

web config - IIS 10 Bad Request - Invalid URL code 400 - Stack Overflow

3、其他

这篇讲的多一些,文末有所覆盖,但没有说太清楚。

在ASP.NET MVC中使用IIS级别的URL Rewrite_iis rewrite能获取参数吗-CSDN博客

 

标签:ASP,IIS,URL,无法访问,代理,反向,Net,特殊字符
From: https://www.cnblogs.com/workingbird/p/18502315

相关文章

  • iis部署tms web core
    iis部署tmswebcore首先准备好你要发布的网站文件夹 1)iis设置网站2)1、打开“IIS信息服务管理器”——》选择你发布的网站——》选择功能视图中的“身份验证”——》右键匿名身份验证,选择“编辑”,选择“特定用户IUSR”;2、右键要发布的网站文件夹,选择“安全”——》“编辑......
  • 为什么有些编程语言不建议用下划线作为标识符开头?标识符的特殊字符。为什么不指定编
    为什么有些编程语言不建议用下划线作为标识符开头?C/C++中两个下划线开头的标识符可能是预留给运行时库的保留字。写代码的时候,就建议最好不要用下划线开头的标识符,避免冲突。最怕的是,编译器没提示错误,运行时产生奇怪的结果。......
  • windows IIS上部署Vue项目
    1.首先执行build命令打包vue项目npmrunbuild执行打包命令后生成的文件在dist文件夹内  2.新建web.config写入配置代码,放进打包后文件的根目录内https://blog.csdn.net/weixin_41934979/article/details/139711262<?xmlversion="1.0"encoding="UTF-8"?><configuratio......
  • IIS配置——关于IIS应用程序池回收机制的几项常用设置
    原文:http://bbs.kuaibiao.cn/thread-5857-1-1.html常规设置对启动模式、发生配置更改时禁止回收、固定时间间隔(分钟)、禁用重叠回收、闲置超时(分钟)这几项做一个说明。快速设置:1、打开IIS,在应用程序池上点击右键选择高级设置。2、常规分组下将启动模式选择为AlwaysRunning......
  • Windows环境Jupyter Notebook无法访问npm和node(暂未解决)
    Windows环境JupyterNotebook无法访问npm和nodecontentTheissuemayarisefromusingNode.jsandnpmthroughNVM(NodeVersionManager),whichinstallstheminuser-specificdirectories.Whilethissetupworks,JupyterNotebookorCondamightnotcorrectlydet......
  • IIS配置——关于WebApi部署在IIS长时间不连接后第一次连接响应慢的问题
    0.服务器信息WindowsServer2019StandardIIS:Version:10.0第一次请求响应慢的原因:默认情况下,应用程序池在不活动情况下(无请求操作),一段时间后,将被IIS自动回收掉。1.修改IIS的下述配置应该程序池-->右键,高级设置-->进程模型,闲置超时(分钟)-->默认是20,设置为0......
  • Windows Server 2008R2服务器 IIS7.0 安装SSL证书并绑定https
    本例以阿里云服务器来解说,本服务器为WinodwsServer2008R2(一般现在至少是2012版本了)默认IIS为7.0第一步:在阿里云上申请好证书并下载IIS版本,下载后上传到服务器中,如下图:第二步:导入证书在服务器按Win+R键,打开运行。输入mmc,单击确定,打开Windows服务器控制台(MMC,MicrosoftMa......
  • iis网站数据库无法连接数据库
    IIS网站无法连接数据库的问题可能由多种原因导致,以下是一些常见的排查步骤和解决方法:检查数据库连接字符串:确认数据库服务器地址、端口、用户名和密码是否正确。检查是否有防火墙或安全组规则阻止了访问。确认数据库服务状态:确保数据库服务(如MySQL,SQLServer等)正在......
  • 网站iis怎么修改网站内容
    在IIS(InternetInformationServices)中修改网站内容通常涉及以下几个步骤:访问IIS管理器:打开“服务器管理器”。点击“工具”>“InternetInformationServices(IIS)管理器”。定位网站:在“IIS管理器”窗口左侧的连接窗格中,展开服务器名称,然后找到并点击你想要修......
  • iis网站数据库失败怎么解决
    解决IIS网站数据库连接失败的问题通常需要从以下几个方面进行排查和处理:检查数据库服务器状态:确认数据库服务是否正常运行。检查数据库服务器是否有足够的资源(如内存、磁盘空间)。验证数据库连接字符串:确保在Web.config或appsettings.json中的数据库连接字符串正确无误......