2011-12-30 41 views
1

我的計算機上有一個Visual C#項目,我希望我的用戶能夠通過Web瀏覽器與它進行交互。我已經完成了我的研究,並且我明白我可能會使用CGI來做到這一點。像CGI文件一樣在Internet上運行C#文件

然而,雖然我已經能夠使用.pl和.cpp文件做到這一點,但我無法弄清楚如何使用C sharp(.cs)文件。任何人都可以解釋我將如何做到這一點?

編輯:如果有一個替代解決方案,其中的網頁與我的C#程序作爲後端程序進行通信,那也可以。

更新:取消與我的託管服務提供商和設置家庭網絡服務器(Windows)後,我終於得到了C#文件作爲CGI運行。感謝大家的幫助!

+0

爲什麼你不會公開你正在尋找使用ASP.NET的功能嗎? – 2011-12-30 01:10:10

+0

不幸的是,我在C#中的經驗遠遠超過了ASP.NET。對我而言,ASP.NET不是一種選擇。 – danielmhanover 2011-12-30 01:11:12

+0

如果你已經完成了你的研究,那麼你毫無疑問會碰到這個問題:http://www.codeproject.com/KB/cs/cgi_csharp.aspx。這不適合你嗎? – 2011-12-30 01:11:58

回答

3

你必須給我們一些上下文...爲什麼不會選擇asp.net?如果你不想在IIS上下文中運行,你可以簡單地編寫一個windows服務(並且公開WCF服務,甚至是原始套接字,如果這是你所需要的)。

編輯:在迴應最近有關服務器是UNIX的評論,你可以使用單聲道到該服務器上運行.NET代碼:http://www.mono-project.com/Main_Page

您可以使用類似mod_mono或者如果你願意更喜歡不同的東西,你可以看看manos de mono

+0

顯然他在Unix上,所以IIS不是一個選項。 – 2011-12-30 01:19:50

+0

我現在正在看Mono。我會暫時提供更新 – danielmhanover 2011-12-30 01:24:02

+0

不幸的是,我不允許安裝Mono – danielmhanover 2011-12-30 01:34:57

0

首先,我假設你已經在你的系統上安裝了Mono project編譯器和運行時環境。

CGI發生完全通過標準輸入和標準輸出。 (這是編寫Perl,Python,Ruby等CGI腳本非常容易的一個原因。你只需像平常一樣開始閱讀標準輸入,解析變量並編寫你希望客戶端看到的任何輸出。)Don'不要忘了你對entire header負責,包括Mime類型。

如果你需要的東西,執行速度比CGI常數fork(2) + execve(2)重新開始一遍又一遍你的CLR過來,你可以實現FastCGI protocol(至少我沒看到維基百科頁面上的C#實現)自己使用套接字並只啓動一次CLR,這樣你就可以獲得一些合理的性能。 (我似乎記得Nat對Mono進程的開始時間「足夠快」以便將其用於交互式命令充滿熱情,因此對於普通的舊CGI接口,輕度加載的服務器可能不會有任何問題。)