我需要在IIS 7和IIS 6上使用C#获取指定网站的tcp端口。我有一个知道网站名称的控制台应用程序。它应该找到这个网站的服务端口。获取tcp端口网站服务于
回答
好的。我会给你一个不同的答案,因为你评论说我最后的回答不是你的问题的答案。
尝试将一个global.asax
文件添加到您的asp.net应用程序。它将具有处理服务器上不同事件的功能。对于Application_Start
函数,可以使用一些代码将网站运行的端口号保存在某个文件或数据库中。
然后,控制台应用程序可以访问相同的文件或数据库来查找端口号。
如果这不适合你,那么在SO上问一个更好的问题可能是“如何在运行时以编程方式读取网站的IIS设置?”
在这里查看更多有用的信息:http://www.w3schools.com/asp/coll_servervariables.asp – 2010-06-04 21:26:30
您是否回答有关ASP.NET网页的问题? – 2010-06-04 21:26:30
哦,我看到你正在运行一个单独的网站控制台程序。一分钟后,我以为你从网站上启动了控制台程序。 – 2010-06-04 21:38:52
你可以用servervariables得到 Request.ServerVariables [“SERVER_PORT”]
我需要在控制台应用程序中工作的代码。不在ASP网页中。 – 2010-06-04 21:28:42
你可以把这些信息放在网页服务器上......如果你不能扫描每一个端口,只需把这些信息放到app.config中 – a52 2010-06-18 14:40:56
默认情况下,IIS绑定到端口80(默认HTTP端口),但我敢肯定的答案并非如此简单。
也许你可以在IIS 6.0中使用管理脚本来遍历IIS对象来查找端口号,但是这假设脚本在服务器上物理运行。
唯一的其他选择是运行每个65535端口的扫描,以查看是否存在使用wget的html侦听器。
每一个正常的AV会杀死扫描所有端口的进程。 – 2010-06-06 10:57:29
我想我可以使用IIS 6和Microsoft.Web.Administration的System.DirectoryServices为IIS 7
不得不在今天这出自己,并得到了我想要的答案,所以想我会发布它进入这个老的线程。
您可以通过阅读IIS元数据库来确定端口,IIS元数据库在IIS6及更高版本中是一个xml文档。
在IIS6获取文件SYSTEMROOT \ SYSTEM32 \ inetserv \ MetaBase.xml和看节点
/配置/ MBProperty/IIsWebServer [@ ServerComment = $ websitename]/serverBindings
在IIS7得到文件systemroot \ system32 \ inetserv \ config \ applicationHost.config (它是xml,尽管扩展名为.config)并查看节点 /configuration/system.applicationHost/sites/site[@name='$websitename']
FOR IIS 7 ;-)
private bool checkPortIsOpen(string portNumer)
{
ServerManager serverMgr = new ServerManager();
int index = 0;
bool isOpen = true;
foreach (Site mySite in serverMgr.Sites)
{
foreach (Microsoft.Web.Administration.ConfigurationElement binding in mySite.GetCollection("bindings"))
{
string protocol = (string)binding["protocol"];
string bindingInfo = (string)binding["bindingInformation"];
if (protocol.StartsWith("http", StringComparison.OrdinalIgnoreCase))
{
string[] parts = bindingInfo.Split(':');
if (parts.Length == 3)
{
string port = parts[1];
if(port.Equals(portNumer.ToString()))
{
isOpen = false;
webSite_portInUse = mySite.Name;
}
}
}
index++;
}
}
return isOpen;
}
- 1. Kaa TCP端口和服务
- 2. 获取网站的端口号
- 3. 以编程方式读取IIS 7网站的TCP端口
- 4. NodeJS:如何获取服务器端口?
- 5. 从Application_Start获取服务器端口
- 6. 获取服务名称的端口号?
- 7. 获取传入TCP连接的端口
- 8. 从struct tcp_sock获取TCP端口号
- 9. 获取网站的服务器
- 10. 用于TCP端口的mktemp
- 11. 如何将(Clojure)Aleph TCP服务器绑定到TCP v4端口?
- 12. 互联网协议端口vs TCP端口vs UDP端口
- 13. 使用网站而非“默认网站”,默认端口,net.tcp的WCF服务
- 14. 客户端服务器 - (TCP)
- 15. TCP客户端服务器
- 16. TCP客户端无法从服务器获取
- 17. 将服务器端口与客户端通信? (TCP)
- 18. Java - TCP服务器无法从TCP客户端读取
- 19. 脚本查找服务和网站收听端口
- 20. 使用本地端口从网站发送TCP/IP请求
- 21. TCP客户端使用的端口连接到其他TCP服务器不可用的服务器
- 22. 服务器端语言创建用于创建网站的拖放网站
- 23. Node.js服务器为普通网站服务或仅用于后端
- 24. 更改devserver网站端口
- 25. 端口不适用于Xpppp服务器
- 26. 如何监视正在用于FTP服务的网络端口?
- 27. Azure的ARM门户网站 - 服务器2016 VM - 配置NSGs为NETMQ一个特定的TCP端口
- 28. 基于libuv的tcp服务器不在指定的端口上侦听
- 29. 获取CheckBox服务器端的值端
- 30. 用于管理群集的TCP端口
您需要提供更多信息 - 是指列出IIS上的所有网站及其所在端口?或者你的意思是查看http请求并查看它请求的端口?如果您告诉我们您正在尝试做什么,我们可以给出合适的答案。 – Oded 2010-06-04 21:19:32
我需要启动一个具有指定网站名称的启动参数的控制台应用程序。该应用程序应该以等于tcp端口的退出码退出。 – 2010-06-04 21:21:57