我有一个通过 HTTP.SYS 监听 HTTP 消息的服务。它使用 System.Net.HttpListener 类:
this._httpListener = new HttpListener();
foreach(var prefix in _addressPrefixes.Select(ChannelIdToUrlPrefix))
{
_httpListener.Prefixes.Add(prefix);
}
_httpListener.Start();
我想设置 HTTP 监听队列的名称,以便我可以在性能监视器中轻松识别它。我不知道该怎么做。
作为我可以了解如何执行此操作的示例,我有另一个使用 AspNet Core 的服务。这确实允许我通过 RequestQueueName 选项设置名称。
builder.UseHttpSys(
options =>
{
//
// Set all the other options as well
//
options.RequestQueueName = "My Custom Name";
}
);
当我只是使用 HttpListener 类时,有什么方法可以设置队列名称吗?
HttpListener 类没有设置 HTTP 监听队列名称的属性或方法。但是,有一个可能的解决方法,涉及使用 Network.Utils 命名空间中的 HttpApi 类。此类有一个名为 SetRequestQueueLength 的静态方法,该方法采用 HttpListener 对象和 int 值作为参数。此方法可用于更改队列长度和队列名称。例如:
using (var listener = new HttpListener())
{
listener.Prefixes.Add("http://*:8080/your/service/");
listener.Start();
Network.Utils.HttpApi.SetRequestQueueLength(listener, 5000); // This also sets the queue name to "your/service"
// ...
}
启动应用程序后,您可以通过运行以下命令来检查队列名称:
netsh http 显示服务状态