我需要在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. 從Windows Azure服務總線獲取可用的TCP端口
- 3. 獲取網站的端口號
- 4. 以編程方式讀取IIS 7網站的TCP端口
- 5. NodeJS:如何獲取服務器端口?
- 6. 從Application_Start獲取服務器端口
- 7. 獲取服務名稱的端口號?
- 8. 獲取傳入TCP連接的端口
- 9. 從struct tcp_sock獲取TCP端口號
- 10. 獲取網站的服務器
- 11. 用於TCP端口的mktemp
- 12. 如何將(Clojure)Aleph TCP服務器綁定到TCP v4端口?
- 13. 互聯網協議端口vs TCP端口vs UDP端口
- 14. TCP客戶端服務器
- 15. 客戶端服務器 - (TCP)
- 16. TCP客戶端無法從服務器獲取
- 17. 將服務器端口與客戶端通信? (TCP)
- 18. Java - TCP服務器無法從TCP客戶端讀取
- 19. 腳本查找服務和網站收聽端口
- 20. 使用本地端口從網站發送TCP/IP請求
- 21. TCP客戶端使用的端口連接到其他TCP服務器不可用的服務器
- 22. 服務器端語言創建用於創建網站的拖放網站
- 23. Node.js服務器爲普通網站服務或僅用於後端
- 24. 端口不適用於Xpppp服務器
- 25. Azure的ARM門戶網站 - 服務器2016 VM - 配置NSGs爲NETMQ一個特定的TCP端口
- 26. 用於管理羣集的TCP端口
- 27. 基於libuv的tcp服務器不在指定的端口上偵聽
- 28. 服務器端或客戶端用於獲取推文?
- 29. Marathon服務端口
- 30. 在一個Windows服務的單個TCP端口上託管多個WCF服務
您需要提供更多信息 - 是指列出IIS上的所有網站及其所在端口?或者你的意思是查看http請求並查看它請求的端口?如果您告訴我們您正在嘗試做什麼,我們可以給出合適的答案。 – Oded 2010-06-04 21:19:32
我需要啓動一個具有指定網站名稱的啓動參數的控制檯應用程序。該應用程序應該以等於tcp端口的退出碼退出。 – 2010-06-04 21:21:57