2017-04-18 73 views
0

我有一個Visual Studio 2015解決方案有兩個項目:如何從Azure Web服務上的經典ASP網站調用C#類庫?

  • 一個經典的ASP網站。
  • 一個C#類庫。

如何調用C#方法從傳統的ASP頁面內?

我會將解決方案部署到Azure應用服務。

我知道我可以創建一個Web API,並調用它的方式。但我想知道是否有其他方式來做到這一點。

UPDATE:

我所做的C#類「COM可見」,並選中了「註冊爲COM互操作」選項,一切正常我的機器上。

但是當我發佈的解決方案Azure的Web服務,這是行不通的。經典的ASP網頁運行良好,但我在嘗試創建對象時,此錯誤:

Server object error 'ASP 0177 : 800401f3' 
Server.CreateObject Failed 
/index.asp, line 34 
800401f3 

大有「註冊爲COM互操作」並不在Azure的應用服務工作。我知道我可以創建一個虛擬機並手動註冊該DLL,但我寧願使用Azure應用服務。

+3

爲什麼沒有Server.CreateObject?使組件COM可見,然後Server.CreateObject。 –

+0

另一個可以考慮的選擇是,如果不能用一些更現代的東西來替換你的傳統ASP站點,那就要看它是如何訪問數據層的。如果鏈接到.Net庫只能作爲從數據庫執行簡單CRUD的一種方式,那麼從頁面調用數據庫的存儲過程可能會更好。 – CDove

+0

雖然Server.CreateObject無法在Azure Web App中使用。我會嘗試使COM可見。謝謝。 –

回答

1

我認爲你提到的兩種方法 - Web API(或類似的中介服務)和Server.CreateObject(需要一個COM可見的.NET程序集)是Classic ASP中的兩個選項。

如果你想使用的.NET程序集/庫不是COM可見,而不必訪問源代碼,你可以創建一個包裝 - 你自己的.NET組件是COM可見,與傳遞方法 - 您可以從傳統ASP調用您的程序集,並且您的程序集將所需的參數傳遞給您實際想要使用的庫,並返回相應方法的結果。

+0

雖然Server.CreateObject無法在Azure Web App中使用。我會嘗試使COM可見。謝謝 –

+0

@CesarDaniel,我不確定,但是如果是這樣的話,你仍然可以使用Web API路徑,或者在Azure虛擬機中託管ASP應用程序(這將允許圖像中的Server.CreateObject)。 – CoolBots