none
請教在VB.net中執行本機的ASP並取得ASP執行完的結果 RRS feed

  • 問題

  • 不好意思~ 小弟又來請教問題了

    小弟最近在研究一個問題
    就是想請問大大們
    能不能用VB.net去讀取本機的ASP檔(不透過IIS)
    並且執行他~ 然後取得最後的結果
    讀取ASP的部分是OK~
    不過他是將ASP以純文字方式讀入
    有辦法在OS沒有裝WebServer的情況下讓VB可以執行ASP並取得結果嗎?
    或是說VB裡需導入些什麼就能有這類功能呢
    小弟的程式碼如下

    --VB.net--

    Code Snippet

    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim xmlhttp As Object = CreateObject("Microsoft.XMLHTTP")
      xmlhttp.Open("GET", "d:\a.asp", False)
      xmlhttp.Send()
      Dim s As String=System.Text.ASCIIEncoding.Default.GetString(xmlhttp.ResponseBody)

      MsgBox(s)
    End Sub
       

        
    --ASP--
    Code Snippet

    <% Response.Write ("OKOK=1") %>


    小弟是希望能用VB.net讀上面ASP的檔案~然後取得ASP執行完之後的 "OKOK=1"
    但是目前是得到整篇完整的ASP ( <% R...... %> )
    謝謝各位~~


    2008年9月17日 上午 04:14

解答

  • 微軟沒有開放 asp.dll 給 IIS 以外的應用程式可以呼叫,所以由外面來處理是不可能的。

     

    而且 asp.dll 內部可是相當複雜,除了解析指令以外(光這件事就可以寫一大堆程式了),還要交給 VBScript 的執行期元件來處理,到時又要綁 ADO,如果又有其他元件的話,要做的事就更多了。

    2008年9月17日 上午 05:47
    版主

所有回覆

  • 你不能直接給實體路徑,要給 HTTP 的路徑,不然 IIS 根本不知道要由誰來執行那個 asp 程式。

     

    2008年9月17日 上午 04:59
    版主
  • 那能夠不透過IIS~
    由VB.net自己來處理嗎~
    例如像是導入某個元件或是什麼的~
    就能讓VB.net自己讀ASP並執行取得ASP執行完的結果嗎

    還是說VB.net本身就不可能不透過IIS去執行ASP得到結果?


    對了~~我剛剛突然想到~~
    IIS執行ASP也是因為他有載入asp.dll
    我可以把這東西拿出來給VB.net來使用嗎??
    會不會很異想天開....

    多謝多謝~~~


    2008年9月17日 上午 05:18
  • 微軟沒有開放 asp.dll 給 IIS 以外的應用程式可以呼叫,所以由外面來處理是不可能的。

     

    而且 asp.dll 內部可是相當複雜,除了解析指令以外(光這件事就可以寫一大堆程式了),還要交給 VBScript 的執行期元件來處理,到時又要綁 ADO,如果又有其他元件的話,要做的事就更多了。

    2008年9月17日 上午 05:47
    版主
  • 所以說~~結論就是以VB.net製作一個可以不靠IIS就能單機執行ASP的程式
    是不可行的囉~~
    既然如此就不用花太多時間在這上面了~~直接跟主管說不行吧

    多謝大大解惑~~
    2008年9月17日 上午 05:54
  • 以前 MSDN 上有範例,剛剛找不到。

     

    不過 google 可以找到滿多的,關鍵字 run asp without IIS:

    http://www.google.com.tw/search?hl=zh-TW&q=run+asp+without+IIS&meta=&aq=f&oq=

     

    有很多是 ASP.NET 的,自己過濾一下。

    2008年9月17日 下午 01:56