.Net HttpListener:如何识别调用进程
本文关键字:识别 调用 进程 HttpListener 何识别 Net | 更新日期: 2023-09-27 18:33:52
我用System.Net.HttpListener和C#(Windows 7+,.Net 4.0)编写了一个代理服务器。我想确定哪个进程正在发送请求(保证发送者在同一台计算机上)。
好的老@EricLaw有一些几乎有效的东西,http://blogs.msdn.com/b/fiddler/archive/2013/01/09/10138573.aspx 但是......仅当我从端口 # 中减去 1 时:
HttpListenerContext context = GetContext();
HttpListenerRequest request = context.Request;
int pid = 0;
if (request.IsLocal)
{
int port = context.Request.RemoteEndPoint.Port;
pid = Winsock.MapLocalPortToProcessId(port - 1)
}
return pid;
如果我不减去 1,则请求源自 PID=4,即系统进程。
减法是我应该做的事情吗?或者是否有其他方法来确定哪个进程发送了请求?
我博客上分享的代码工作得很好;它用在Fiddler,被数百万人使用。
您应该转储整个端口列表,看看发生了什么;也许从context.Request.RemoteEndPoint.Port
返回的值有问题。