这对我来说似乎不正确,所以我正在找人告诉我我是如何配置错误的IIS …配置是IIS7.5(2008R2),没有SP1.
我有IIS 7.5配置了几个站点.所有站点都在绑定中定义了主机名,没有站点没有主机名.但是,如果我从服务器IIS(技术上是Microsoft-HTTPAPI / 2.0)请求未知的主机名,则返回404错误,而不是400错误.我期望400(或其他一些主要错误),而不是低404.
当我在多个IIS前面有Nginx并想要停止一个站点以便Nginx将其从旋转中取出时,这会导致问题.由于IIS仍然为请求返回404,即使该名称没有活动站点,Nginx也不知道服务器已死.
注意:无论是否有服务器,IIS都会返回404,但它已停止,或者没有服务器.
思考?解决方案?
– 其他信息:好的,我在80(5000)以外的端口上添加了一个站点,然后在该端口的连接上询问了一个不存在的站点,我得到了预期的错误400(无效的主机名).因此,虽然IIS没有在端口80上侦听通用(无主机名)连接,但似乎有些东西.任何想法如何让HTTPSys转储它正在侦听的列表?
这是设计的. URL预留与URL注册不同,URL注册在应用程序向HTTP.SYS注册正在侦听时动态发生.在URL预留的情况下,HTTP.SYS不知道给定预留中的URL是暂时不可用还是根本不存在.在这种情况下,它只能知道有一个有效的主机名匹配(因为您的强/弱通配符),但URL路径与任何当前注册的侦听器不匹配.
原文链接:https://www.f2er.com/windows/367488.html如果您想要400或503响应,则要么不使用任何URL保留,要么使用不包含通配符的显式URL保留.简而言之,如果您配置HTTP.SYS使其可以将URL的前缀与任何Reservation(包括通过Registration创建的动态)匹配,那么它将向侦听应用程序发送请求(如果其余匹配),或者返回如果找不到活动的注册监听器,则为404.
另一种可能更简单的解决方案是使用IIS服务本身来管理发送503.为此,不要停止站点,而是停止与之关联的应用程序池.这将导致在HTTP.SYS中发生完全限定匹配(即使使用wlidcard URL Reservations),但是将导致503,因为没有AppPool来传递请求.