2009-05-22 65 views
4

我不得不從一些傳統的ASP應用程序運行命令行操作。如何使用WScript.Shell對象調試ASP權限問題?

這裏是我的代碼:

<% 
    cmd = "%comspec% /c echo Hello"  

    set wsh = CreateObject("WScript.Shell") 
    ireturn = wsh.Run(cmd, 0, true) 
    set wsh = nothing 
%> 

這裏是結果我收到:

Microsoft VBScript運行時錯誤 '800A0046'

權限被拒絕

/測試的.asp,線6

你有任何想法如何使IIS6運行該代碼?

注:當然,我沒有運行echo命令,但我要排除這個問題的任何其他原因。

更新:我想大多數事情tomalaks提然而沒有任何幫助。也許我可以改變一些問題。 如何調試此問題?

回答

4

ASP通常被拒絕訪問潛在危險的任何內容,如cmd.exe。檢查cmd.exe的文件權限,看看你是否真的(我想是的)。

如果你真的必須使用CMD.EXE做網頁處理的一部分,無論是在CMD.EXE(不推薦用於面向Internet的Web服務器)更改文件權限,或確保ASP頁運行不被拒絕訪問該文件的憑據。

要實現此目的,請使用IIS管理控制檯刪除對ASP頁面的「匿名訪問」,並使用Windows集成身份驗證(如果可行),或者保留「匿名訪問」並輸入一組固定的憑據應該用來代替默認的「IUSR _...」。

或者,如果您使用cmd.exe只是爲了啓動輸出某些內容到STDOUT的程序,則可以直接嘗試啓動該程序,而無需將其封裝在cmd.exe調用中。同樣,運行ASP頁面的用戶需要訪問該程序的可執行文件。