2011-03-19 50 views
0

我正在尋找關於完成將我的C#應用​​程序作爲Web應用程序運行的最佳方法的建議。我的應用程序將一個文件和一些配置設置作爲輸入,它會針對該文件運行一些腳本,然後輸出一個新文件。C#作爲web應用程序

我希望能夠將其作爲Web服務運行,以便通過在後端保留.exe和引用的DLL來從任何操作系統訪問它。

有什麼辦法可以做到這一點?我知道我可以選擇啓動一個虛擬服務器並使用RDP,但我想讓它成爲一種本地的網絡體驗。

  • WCF是解決方案嗎?
  • XAML?
  • 微軟是否有解決方案來獲取.exe並在IIS Web服務器上運行它?

謝謝!

回答

-1

WCF是一種服務而不是可執行的東西,你可以在瀏覽器中的WPF應用程序一看,或Silverlight ...

在兩者之間,強烈建議Silverlight的同時,更異質性。 bwpf更容易,因爲剛做,當您創建一個WPF應用程序你做了什麼,但只能在IE下運行

http://silverlight.net/裝載的是建立與Silverlight和它在IIS下運行ONLY

瀏覽器WPF是你的EXE和DLL的東西...

+0

-1:這對他的特殊問題有什麼幫助? – 2011-03-19 02:01:44

+0

@john saunders:他問的是如何訪問不同的操作系統,然後silverlight和bwpf是解決方案,他們可以使用dll構建函數,wcf作爲服務在桌面應用程序和Web應用程序之間進行通信... 也許是因爲我的英文不是很好,我的解釋不是很清楚,但是這就是= D – 1myb 2011-03-19 03:41:55

+0

他問如何訪問_his現有application_。 SilverLight將被重寫。 – 2011-03-19 03:45:26

0

你可以用一個簡單的Web應用程序很容易地做到這一點;你不需要做太多特別的事情。簡單地用Process類調用你的EXE:

Process myApp = new Process(); 
myApp.StartInfo.FileName = ConfigurationManager.AppSettings["myAppLocation"]; 
myApp.StartInfo.CreateNoWindow = true; 
myApp.Start(); 
myApp.WaitForExit(); 

// Open file and read it 
// Additional Info at http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx 

然而,更好的選擇,簡直是從您的EXE提取代碼(你可能有地方的代碼),並介紹,作爲一個類庫爲您的Web項目消耗。

+0

第一種解決方案假定他的可執行文件的多個實例可以同時運行。例如,如果腳本爲臨時文件使用硬編碼名稱,並且兩個用戶同時嘗試使用該網頁,則可能會發生各種不良情況。 – R0MANARMY 2011-03-19 02:03:35

+0

確實如此,這就是爲什麼我建議他將代碼提取到可重用的類庫中。當一個Web請求嘗試使用共享資源時,總會存在競爭= D – Tejs 2011-03-19 02:05:50

+0

True ....但是添加與類庫相同的代碼不會自動修復使用共享資源的(假設)問題,應該分開處理。如果你願意,可以給這個答案添加一個警告,我會刪除我的評論=)。 – R0MANARMY 2011-03-19 02:15:25

0

除非有絕對需要將現有的應用程序保持爲在後端調用的.exe的最簡單的解決方案是將您的C#代碼集成到簡單的ASP.NET Web應用程序中。您可以引用Web應用程序中的現有DLL以在服務器端使用tem。檢查出的教程上製作一個簡單的ASP/NET的Web應用程序,如:

http://www.kirupa.com/net/helloWorld.htm

只需添加一個HTML輸入字段以允許用戶上傳的文件,並進行了下載鏈接輸出文件。

相關問題