2013-07-12 35 views
1

我得到一個「請求」時,我必須調用一個複雜的.dll C#庫的方法。 由於我不想編程網絡部分(套接字,協議等),我正在考慮使用現有的Web服務器(IIS或Apache)來處理這部分(並使用HTTP作爲協議)。網絡和C#.dll之間的相互作用

  1. 是否可以將.dll加載到內存中並從Web服務器調用它的方法? 如何做到這一點?
  2. 如果是,在Windows,Apache或Windows上使用IIS還是在Linux上使用Apache更好?
  3. 是否必須使用C#/ ASP調用C#.dll的這種方法?或者它可以與PHP?

它是非常可擴展,和.dll文件庫使用.NET框架

當然我想在PHP中使用exec函數,但是這會在每個請求中一次又一次地啓動一個C#程序,這不是很好。 我想在內存中加載一次C#.dll,並儘可能直接在Web服務器上運行它,以便在獲取特定的HTTP請求時只發生對方法的「調用」。

我的問題與this one有相似之處,但我不相信我們的問題是相同的。

回答

2

是否可以將.dll加載到內存中並從Web服務器調用它的方法?怎麼做?

是的,例如,通過使用WCF或ASP.NET Web API編寫圍繞它的服務層。鑑於SOAP服務和客戶端之間的奇特(至少可以說)互操作性,我會選擇後者。

然後,您可以通過PHP的cURL或任何其他適用的方法調用您的SOAP/REST/giveitaname服務,然後C#服務將調用DLL中的代碼(您必須構建這部分代碼)。

您可以在IIS中輕鬆託管這兩種類型的項目,使其可以通過HTTP訪問。

+0

其實我沒有注意到,但我問的是本地和基本。我只需要在Web項目中將.dll設置爲「Ressource」,並且可以直接輕鬆地調用它。 – Fox