無權運行 CDONTS 應用程式
問:我試圖在我的網站上使用以下指令碼。
(http://www.microsoft.com/technet/community/columns/insider/iisi1201.mspx (英文))
<%
Dim objMail
Set objMail = Server.CreateObject("CDONTS.NewMail")
objMail.From = "yourname@youremail.com"
objMail.Subject = "A Sample mail sent with CDONTS"
objMail.To = "someone@somwhere.com"
objMail.Body = "Here is the message."
objMail.Send
set objMail = nothing
%>
但是我的伺服器產生如下錯誤碼:
Microsoft VBScript 執行階段錯誤“800a0046"- 許可權被拒絕。
答:CDONTS 設計為在 Windows NT 4.0 上,使用 IIS 4.0 以進程內組件的形式運行。當應用程式在進程外運行時,它使用 IWAM_<電腦名稱> 帳戶,運行在 MTS.EXE(IIS 4.0)或是 DLLHOST.EXE(IIS5)進程中。當在進程外運行應用程式時,IWAM 帳戶可能需要訪問檔案和系統資源。對於這樣的 CDONTS 對象,IWAM 帳戶需要訪問系統的機器密鑰(參見 Microsoft 知識庫文章 318478 (英文))以及 Inteinfo/Mailroot 檔案夾中的某些檔案夾(參見 Microsoft 知識庫文章 260985 (英文))。
有了這些資訊後,可能還需要做一些其他動作。首先,作為一種策略,您應該重新編寫應用程式的代碼,改為使用 CDOSYS 對象(請參見 2001 年 12 月份的 IIS 專欄 (英文))。這將確保它在今後也受支援,因為 Windows 2000 或 Windows Server 2003 上不會安裝 DOSYS 對象。這也許能,但也許不能解決您的問題。其次,如果 CDONTS 應用程式在進程中而不是進程外運行,那麼您幾乎可以確定問題與 IWAM 使用者帳戶許可權有關。由於安全方面的考慮,也許無法或是不希望在進程中運行 CDONTS 應用程式,但是這樣可以避免與 IWAM 帳戶相關的許可權問題。確認 Mailroot 和機器密鑰擁有適當的許可權。再其次,如果啟動 ASP 指令碼的使用者對 Mailroot/Pickup 檔案夾沒有適當的許可權,那麼也可能會出現這樣的錯誤訊息。預設情況下,MailRoot 檔案夾的許可權被設定為 Everyone – 完全控制,但這個許可權過高。因此,我建議將已通過身分識別驗證的使用者對此檔案夾的使用權限設定為讀取/寫入,而 System 和 Administrators 則設定為“完全控制"。這將允許 IUSR 和 IWAM 使用者以及其他使用者帳戶可以將郵件寫入 SMTP 檔案夾。您還應該將 IUSR_<電腦名稱> 對這些檔案夾的使用權限設定為拒絕執行。如果已經運行了 IIS Lockdown 工具 (英文),那麼可以使用 Web Anonymous Users 本機群組來實現這一點。不要拒絕 Web Applications 組的寫入 許可權。
返回頁首
安裝 IIS 5.0 後伺服器運行失敗
問:在 IIS 5.0 上,我們希望在應用程式的預設保護設定下——中(共用)——運行應用程式。如此配置後,我們收到以下錯誤訊息:
錯誤碼 800800005 - 伺服器運行失敗。
我們嘗試過卸載,然後重新安裝 IIS,但是仍然出現此訊息。我們應該如何解決這個問題呢?
答:這條訊息通常表明 IIS 的設定或安裝過程中存在不正確的操作。請查看 IIS5.log 檔案(位於 %systemroot% 檔案夾中,而該檔案夾通常位於 /Winnt 下),並在其中搜尋單詞“FAIL"。這也許能發現問題所在。這條訊息出現時,很可能會伴隨著某些事件檢視器訊息,而這些訊息可以提供非常有價值的資訊。另外,值得嘗試運行 Synciwam.vbs,這個檔案預設情況下位於 /Inetpub/Adminscripts 檔案夾中。最後,嘗試一個眾所周知的小技巧:開啟“控制台",然後單擊“添加/刪除 Windows 程式"。不要做任何更改,然後單擊“確定"。這個操作將會使 Windows 2000 對 IIS 和 COM+ 對象執行某些驗證測試。
2.如果出現以下情況:
System.Runtime.InteropServices.COMException: 伺服器拒絕了一個或多個收件者地址。伺服器響應為: 550 5.7.1 Unable to relay for rav@now.net.cn
預設SMTP虛擬伺服器--屬性--訪問 -- 中繼--“加入127.0.0.1”;
就行了。