2009-10-04 80 views
7

我正在尋找一種方法來在Windows服務中託管Web UI,以便我可以在瀏覽器中對其進行配置和控制。我想要一個簡單輕量級的解決方案,而且我不想使用IIS。如何在.Net中爲Windows服務創建Web界面?

我大概可以手工卷的大部分,但我不知道是否有已經作出緩解這一進程的東西。

回答

0

由於這個問題最初發布,這個問題更好的解決方案已經出爐。

如果您的目標是.Net Core,則通過使用WebHostBuilder來自行託管ASP.Net Core是微不足道的。

另一種解決方案是Nancy,這也易於self-host

1

你總是可以使用WCF到服務中託管端點和揭露它的方式。

我能想到的唯一的其他選擇將涉及有一些文件一個Web應用程序可以寫入和服務可以讀取,或者某個被網站寫入和服務讀取的數據庫。這些都不如僅僅通過WCF暴露通信端點那樣優雅。

編輯 - 添加

具體來說,我想揭露這個作爲一個HTTP端點並直接與瀏覽器接口您將Web服務的方式。

然而,沒有任何理由,你不能有一個傳統的Asp.Net應用程序設置,只要主機服務的通信終端與服務進行通信。

+0

+1我認爲這是最乾淨的方法,特別是上面託管一個進程內的Web服務器。我使用這樣的WCF。它允許您通過分離問題來清晰地構建解決方案。 WCF服務公開了一個API,但保持UI獨立。也許我們今天公開爲一個網頁,但明天我們也會提供一個桌面工具。 – codenheim 2015-12-19 20:10:15

1

如果您正在尋找在UI,而不是Web服務接口有一對夫婦的事情可以做:

1)它可能比你更需要,但你可以使用你的服務承載ASP.NET原始的卡西尼代碼庫: http://blogs.msdn.com/dmitryr/archive/2005/09/27/474534.aspx

2)您也可以打開一個端口,並根據您期望訪問的服務的多少將簡單的HTML頁面放在服務中的單獨線程上。

我已經幾次做這兩個,和任何一個長達非常簡單,你不關心安全性 - 例如該機器只能從受信任的Intranet訪問。如果情況並非如此,則最好在機器上託管IIS並編寫安全的Web應用程序。

2

我一直想與我創建的Windows服務完全相同的事情。我可能終於找到了一篇有用的文章。我還沒有嘗試過,但我認爲它有我們都需要的基礎 - 以及樣本源。

文章的重點是如何從代碼中託管的網絡服務(ASMX),但我認爲它可以很容易地舉辦ASPX頁面。

http://msdn.microsoft.com/en-us/magazine/cc163879.aspx

-Derek

+0

感謝您的回覆。我已經看過System.Web.Hosting(實際上,我看着Cassini),並發現它對我的需求有點複雜。我並不需要託管aspx頁面,我只想用代碼來響應傳入的請求。 我已經開始使用System.Net.HttpListener開始處理這個項目。當我有第一個版本時,我打算將它作爲開源代碼提供。我會在這個問題上添加一個答案。 – 2009-10-28 01:13:17

1

編輯:懇求你不要用這個。這是一個簡單的概念證明,我從來沒有去過任何地方。請參閱我的其他回答better solutions


好吧,遲到比從未好。沒有太多時間來處理它。

http://github.com/leddt/SimpleHttpServer

這是非常基本的東西,而不是用於生產用途。這是我正在試驗的一個小項目。然而,我會採取意見,建議等......