用ASP.NET封裝第三方組件以提供服務的嘗試

來源:互聯網
上載者:User
asp.net     不少應用程式的作者為編程人員提供了可以在其它程式中複用的組件。我們通常會在自己的程式中引入這些第三方組件,調用其中現成的函數來實現相對複雜的功能。事實上,我們也可以通過網路發布第三方組件中的函數,以便為更多使用者更為方便地提供服務。

  對於.NET開發,可以通過ASP.NET(對人)或Web Service(對機器)技術封裝第三方組件。下面以用ASP.NET發布Matlab組件中的Execute函數為例說明。前提是伺服器上已安裝Matlab。

  在VS2005中建立一個ASP.NET網站,在Solution Explorer窗格的網站目錄上點擊右鍵選擇Add Reference,加入Matlab的COM組件:Matlab Application(version X.X) Type Library。

  在網頁上分別添加一個TextBox、一個Button和一個Literal控制項。TextBox用以輸入運算式,Button確定執行,Literal輸出結果。添加以下事件代碼,以便調用Matlab組件中的Execute函數執行Matlab語句:

    Protected Sub Button1_Click(ByVal sender As Object, _

    ByVal e As System.EventArgs) Handles Button1.Click

        Dim matlab As New MLApp.MLApp

        Dim strMatLab As String

        strMatLab = TextBox1.Text

        Dim strResult As String = matlab.Execute(strMatLab)

        strResult = strResult.Replace(Chr(10), "<br>")

        strResult = strResult.Replace(" ", " ")

        Me.Literal1.Text = strResult

        matlab.Quit()

    End Sub

  在VS2005中運行這個網站,在出現的網頁中輸入一個運算式,如“dsolve('Dx=x^2+5')”,點擊按鈕後隨即會顯示結果:“ans = 5^(1/2)*tan(5^(1/2)*t+5^(1/2)*C1)”。但如果用IIS發布這個網站,運行時則會出錯,提示的原因是ASP.NET沒有建立組件的許可權。根據出錯提示,我們需要在網站的web.config檔案中加入一句:

<identity impersonate="true" userName="xx" password="xx"/>

  這裡指明的使用者應當是伺服器端有相關許可權的使用者。如果不指定則在用戶端頁面進行身分識別驗證。當然,在web.config中明文儲存使用者名稱和密碼是不安全的,在真正的應用中要加密。

  就此,我們完成了Matlab運算式求值函數的網路發布。可以通知沒有安裝Matlab的朋友登入你的網站使用的Matlab強大的計算功能了。(注意:此例僅供示範,Matlab強大的語句和工具箱足以讓遠端使用者通過這個網頁訪問你的檔案系統。)

  由於HTTP協議的性質以及伺服器端執行的特性,這種對第三方組件的封裝一般適於發布資料處理函數,而不適於發布控制函數。同時這一方法對即時性強或需要儲存狀態的服務也不很適宜。安全起見,我們也可以對第三方組件進行二次封裝,加入資料過濾與異常處理。

  原理非常簡單。希望大家能與我討論這一方案在實際應用中的價值。

參考:

1、李洪根,在.NET中應用MATLAB演算法

http://www.microsoft.com/china/community/Column/25.mspx

2、Matlab 7.1,Matlab Web Server 相關協助文檔



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。