问题标签 [http.sys]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
390 浏览

proxy - 为什么我的 Web Api 代理设置为浏览器代理时收不到 https 请求,但可以正常接收?

我已经使用 WebApi编写了一个 http 代理。

我在端口 4443 上注册了它,如果我进入https://localhost:4443浏览器,并在我的 DelegatingHandler 中设置断点,它将被命中(并且我收到 SSL 警告)。

如果我随后将其设置为 firefox 代理(见图),对于 SSL 请求,并且浏览到https://somesite.com它不会被击中 - Web Api 似乎根本不处理调用。

在此处输入图像描述

浏览器在使用代理时与在直接调用导致 Web Api 无法处理调用时相比有何不同?

0 投票
1 回答
5687 浏览

c# - 使用 .Net HttpListener 时更改 HTTP.sys 内核队列限制?

我有一个使用HttpListener.Net 4.0 中的类来服务 http 请求的应用程序。

在负载下,我注意到我得到503 - QueueFull- 日志中报告的错误。搜索此错误表明它发生在http.sys超过将排队的最大请求数时。

默认队列长度为 1000。如果您正在使用IIS这似乎可以通过应用程序池的高级设置中的“队列长度”参数进行调整。

如果您使用 IIS,是否有任何方法可以调整此值?还是这个参数的控制隐藏在HttpListener类中,不暴露给开发者?

0 投票
0 回答
312 浏览

multithreading - Http.sys 堆栈是否维护单独的线程池?

很晚了,我一直在尝试了解 IIS 请求处理的内部。我在 IIS 7.0 和 6.0 中看到了关于 ASP.Net 线程使用的不错的博客。(http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx)。我部分理解了线程在请求​​处理的 ASP.Net 部分(w3wp.exe)范围内的工作原理。但是我无法理解 HTTP.sys 组件范围内的请求处理。

我有以下问题:

  1. 当请求进入 HTTP.sys 时,是否只有单个线程可以获取请求并将其放入相应的应用程序池队列中?或者 HTTP.sys 组件中是否有任何线程池负责将请求放入应用程序池请求队列?

  2. 我也对参与整个请求处理过程的线程池总数感到困惑,即从 http.sys 到处理程序组件。

是否总共有三个线程池,即 HTTP.sys 中的一个,第二个用于 IIS 线程池,它从应用程序池队列中获取请求并发布到 asp.net,第三个,即执行 ASP.Net 管道工作的 CLR 线程池。

请问有人可以回答以上问题吗?

0 投票
0 回答
696 浏览

apache - 如何在不停止 http:sys 的情况下运行 Apache

我知道有很多关于使 Apache 运行的主题,但一切都包括停止使用端口 80 的服务,在 Win 7 和 8 上,这是http:sys,我真的不想停止。我不确定我不会使用知道 http.sys 的 Windows 应用程序,或者它是否会干扰我的 .NET 开发工具等,因为该端口由 SYSTEM 使用。

我偶然发现了这篇文章,它提出了其他解决方案,这意味着在网络配置中添加一个额外的 IP 地址。但是有人抱怨副作用。

那么是否有任何平滑的方法可以让 Apache 运行,但不停止 http.sys。也许让它使用其他端口,或者最重要的是 - 让 Apache 绑定到另一个端口(例如 8080 或类似的东西)。

0 投票
1 回答
1379 浏览

http - URL 中的 %09 导致 IIS (HTTP.SYS?) 立即返回 HTTP 400

我发现 IIS7、7.5 和 8(也可能是以前的版本)在遇到任何包含%09不属于查询字符串的 URL 时会快速失败。

StackOverflow 本身表现出相同的行为,请注意:

http://www.stackoverflow.com/questions/%09

这对我的应用程序来说很烦人,因为我已经构建了一个 Web 服务,它应该text/xml为每个请求(甚至是无效请求)返回,其中包含包含错误代码的特定 XML 文档格式。我发现一些 web 服务客户端将%09(通常由用户复制和粘贴)传递给我的服务,但我的服务器返回一个丑陋的 HTML 响应,似乎硬编码到 HTTP.SYS 中(我覆盖了 HTTP 400 错误响应IIS,但它没有效果)。

错误请求 - 无效的 URL

HTTP 错误 400。请求 URL 无效。

有什么解决方法或解决方案吗?

备忘录:

为了比较:

0 投票
2 回答
2649 浏览

iis - 从命令行设置 UrlSegmentMaxLength

有没有办法设置使用 appcmd/netsh 或任何其他命令行实用程序的UrlSegmentMaxLength值?Http.sys

0 投票
1 回答
756 浏览

visual-c++ - 分块传输编码

我开发了一个 Http 服务器,我的响应代码摘要是这样的:

但结果是87!现在,如果我删除这行代码:

结果是0,我的响应被发送给客户。我如何利用Chunked transfer encoding

0 投票
2 回答
1690 浏览

ravendb - Raven.Server.exe 授予监听http权限失败

我已将 RavenDB 2.5.0 安装为 Windows 服务。当我尝试以管理员身份运行 Raven.Server.exe 时,我收到以下信息:

知道该怎么做吗?

0 投票
0 回答
36439 浏览

http - http.sys 究竟是如何工作的

我正在尝试更深入地了解 IIS 的工作原理。

我理解的 http.sys 是它的主要组成部分之一。但是,我一直无法找到易于理解的有关它的信息。在我听说 WSK 之前,我无法建立一个好的心理模型,然后我认为这一切都到位了。

通过大量随机谷歌搜索和一些实验,这是我目前对它存在的原因以及它是如何工作的高级理解。

为什么:

端口共享和更高性能的缓存。

如何:

用户模式进程使用 WinSock api 打开一个侦听端口的套接字以访问网络子系统,例如 tcp/ip。内核模式软件(如 http.sys 驱动程序)使用 Winsock 内核套接字 (WSK) api 使用与 WinSock api 相同的 TCP 端口号池来实现相同的目的。

IIS、Web 服务或任何想要使用 http 的东西都会使用唯一的 url/端口组合向 http.sys 注册自己。http.sys 使用 WSK 在此端口上打开一个套接字(如果它还没有用于具有相同端口的另一个 url/端口组合)并进行侦听。

当传输层 (tcpip.sys) 将 ip 数据包负载重构回客户端发送的 http 请求时,它通过请求中的端口将其提供给 http.sys。Http.sys 使用 url/端口号将其发送到适当的进程,该进程可以随意解析它。

我知道这似乎是在回答我自己的问题,但我对此真的不太确定,我希望有一些结束,这样我就可以继续做更有趣的事情了。

我接近了吗?

0 投票
10 回答
168966 浏览

html - 什么会导致 Chrome 在缓存内容上针对本地主机上的服务器给出 net::ERR_FAILED?

我正在构建一个 Web 服务器并尝试进行测试。服务器正在运行localhost:888,当我第一次加载 Web 应用程序时,一切正常。但是如果我尝试重新加载页面,一堆XmlHttpRequest请求会以net::ERR_FAILED. 通过在服务器代码中设置断点,我可以验证请求从未真正进入。

这不是连接失败,因为连接是第一次成功。它成功一次然后失败的事实意味着它可能与缓存相关,但服务器代码中没有设置cache-control标头的任何内容。所以我通过将服务器放在实际的 Web 服务器上来测试它。第一次,一切都必须花时间加载;第二次,它全部立即加载,所以这绝对是与缓存相关的

这是一个在(无 IIS)之上运行的自定义服务器http.sys,似乎默认情况下会缓存内容,然后在后续运行中无法从中加载,但仅当我的服务器在 localhost 上运行时;在网络上,它工作正常。据我所知,net::ERR_FAILEDChrome 中是一个通用的“出了点问题,我们没有对你有用的信息”消息,所以我有点卡在这里。有谁知道这可能是什么原因造成的?