我正在为 RESTful Web 服务状态页面编写代码。我想知道是否有办法将当前请求从 IIS 获取到 C# 中。
我正在使用 IIS 7.0,我想要的信息在下面
IIS > 工作进程 >ASP.NET v4.0> 请求
您可以使用GetRequests https://msdn.microsoft.com/en-us/library/microsoft.web.administration.workerprocess.getrequests(v=vs.90).aspx的方法WorkerProcess https://msdn.microsoft.com/en-us/library/Microsoft.Web.Administration.WorkerProcess(v=vs.90).aspx类型。该类型位于Microsoft.Web.Administration https://msdn.microsoft.com/en-us/library/Microsoft.Web.Administration(v=vs.90).aspx可以使用此安装的组件非官方 nuget 包 https://www.nuget.org/packages/Microsoft.Web.Administration/或者添加对此 dll 的引用%WinDir%\System32\InetSrv\Microsoft.Web.Administration.dll
Example:
using (ServerManager manager = new ServerManager())
{
while (true)
{
var requests = manager.ApplicationPools
.Where(pool => pool.Name == "FooPool")
.SelectMany(pool => pool.WorkerProcesses)
.SelectMany(wp => wp.GetRequests(10));
Console.WriteLine(requests.Count());
Thread.Sleep(100);
}
}
注意:您需要启用 IIS 请求管理器功能,并由具有足够权限的用户运行。看如何查看 IIS 8 上当前正在执行的 Web 请求 https://stackoverflow.com/questions/15621509/how-do-i-see-currently-executing-web-request-on-iis-8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)