我正在尋找一種方法來在Windows服務中託管Web UI,以便我可以在瀏覽器中對其進行配置和控制。我想要一個簡單輕量級的解決方案,而且我不想使用IIS。如何在.Net中爲Windows服務創建Web界面?
我大概可以手工卷的大部分,但我不知道是否有已經作出緩解這一進程的東西。
我正在尋找一種方法來在Windows服務中託管Web UI,以便我可以在瀏覽器中對其進行配置和控制。我想要一個簡單輕量級的解決方案,而且我不想使用IIS。如何在.Net中爲Windows服務創建Web界面?
我大概可以手工卷的大部分,但我不知道是否有已經作出緩解這一進程的東西。
由於這個問題最初發布,這個問題更好的解決方案已經出爐。
如果您的目標是.Net Core,則通過使用WebHostBuilder來自行託管ASP.Net Core是微不足道的。
你總是可以使用WCF到服務中託管端點和揭露它的方式。
我能想到的唯一的其他選擇將涉及有一些文件一個Web應用程序可以寫入和服務可以讀取,或者某個被網站寫入和服務讀取的數據庫。這些都不如僅僅通過WCF暴露通信端點那樣優雅。
編輯 - 添加
具體來說,我想揭露這個作爲一個HTTP端點並直接與瀏覽器接口您將Web服務的方式。
然而,沒有任何理由,你不能有一個傳統的Asp.Net應用程序設置,只要主機服務的通信終端與服務進行通信。
如果您正在尋找在UI,而不是Web服務接口有一對夫婦的事情可以做:
1)它可能比你更需要,但你可以使用你的服務承載ASP.NET原始的卡西尼代碼庫: http://blogs.msdn.com/dmitryr/archive/2005/09/27/474534.aspx
2)您也可以打開一個端口,並根據您期望訪問的服務的多少將簡單的HTML頁面放在服務中的單獨線程上。
我已經幾次做這兩個,和任何一個長達非常簡單,你不關心安全性 - 例如該機器只能從受信任的Intranet訪問。如果情況並非如此,則最好在機器上託管IIS並編寫安全的Web應用程序。
我一直想與我創建的Windows服務完全相同的事情。我可能終於找到了一篇有用的文章。我還沒有嘗試過,但我認爲它有我們都需要的基礎 - 以及樣本源。
文章的重點是如何從代碼中託管的網絡服務(ASMX),但我認爲它可以很容易地舉辦ASPX頁面。
http://msdn.microsoft.com/en-us/magazine/cc163879.aspx
-Derek
感謝您的回覆。我已經看過System.Web.Hosting(實際上,我看着Cassini),並發現它對我的需求有點複雜。我並不需要託管aspx頁面,我只想用代碼來響應傳入的請求。 我已經開始使用System.Net.HttpListener開始處理這個項目。當我有第一個版本時,我打算將它作爲開源代碼提供。我會在這個問題上添加一個答案。 – 2009-10-28 01:13:17
這裏的另一種選擇,如果你想要一個嵌入式服務器,而不是一種服務或任何外部HTML/ASPX文件:
WebConfig - 你的無線路由器了吧,現在你也可以 http://www.codeproject.com/KB/game/WebConfig.aspx
編輯:懇求你不要用這個。這是一個簡單的概念證明,我從來沒有去過任何地方。請參閱我的其他回答better solutions。
好吧,遲到比從未好。沒有太多時間來處理它。
http://github.com/leddt/SimpleHttpServer
這是非常基本的東西,而不是用於生產用途。這是我正在試驗的一個小項目。然而,我會採取意見,建議等......
本文的重點是如何從代碼中託管一個Web服務(ASMX),但我認爲它可以輕鬆託管一個ASPX頁面。
+1我認爲這是最乾淨的方法,特別是上面託管一個進程內的Web服務器。我使用這樣的WCF。它允許您通過分離問題來清晰地構建解決方案。 WCF服務公開了一個API,但保持UI獨立。也許我們今天公開爲一個網頁,但明天我們也會提供一個桌面工具。 – codenheim 2015-12-19 20:10:15