我有一個令人沮喪的簡單問題。我已將經典的ASP網站從Windows Server 2003 IIS站點遷移到運行IIS 8.5的全新2012 R2服務器。在IIS 8.5上運行經典ASP的Include_file_not_found錯誤
當我導航到主頁(http://mydns/default.asp)時,出現500錯誤。 IIS日誌表明我這個錯誤:
GET /default.asp |4|ASP_0126|Include_file_not_found
望着的default.asp頁,我看到在該文件的頂部以下代碼:
<%@ Language=VBScript %>
<!-- #include file="Include/common.asp" -->
<%
dim EMAIL_ID
if Request.QueryString = "" then
...
所以,我的假設是錯誤由於第二行而被拋出。在網站目錄中,Include目錄確實存在,並且裏面有一個common.asp文件。
# the default.asp page that I'm loading...
E:\websites\mywebsite>dir | findstr default
09/29/2015 10:30 AM 3,237 default.asp
# the common.asp page within the Include folder...
E:\websites\mywebsite>dir Include | findstr common
06/30/2015 10:27 AM 546 common.asp
任何想法爲什麼我會得到一個文件時,我沒有找到一個錯誤,當我看到它在該目錄中?
更新1:通過在瀏覽器導航到common.asp頁面,我得到以下錯誤在IIS:
GET /Include/common.asp |42|800a01ad|ActiveX_component_can't_create_object:_'Domain.clsAuth'
我發現this article這讓我確認一個DLL是失蹤,所以我正在追求在新的服務器上安裝它。
更新2:我能夠在舊服務器上找到所需的Domain.dll。我使用Dependency Walker來確定Domain.dll依賴於MSVBVM60.DLL,因此我抓住了這兩個並將它們移動到新服務器。我使用C:\WINDOWS\system32>regsvr32.exe MSVBVM60.DLL
成功註冊了MSVBVM60.DLL,但註冊Domain.dll失敗。我得到了以下錯誤消息:
事實證明,這是你,如果你嘗試註冊不存在的文件相同的錯誤。例如,我試圖註冊「dummy.dll」並得到相同的錯誤。這就像系統沒有看到文件。它在命令行自動完成,但我無法註冊。我也無法在Dependency Walker中打開它...應用程序說找不到文件。但我知道它的存在......
C:\WINDOWS\system32>dir | findstr Domain
04/27/2006 02:57 PM 24,576 Domain.dll
更新3:有關注冊DLL的問題是一個32比64位的事情。我在system32文件夾中只有一個64位的文件夾中有一個32位的DLL。一旦我將它移動到SysWOW64文件夾(這是一個32位文件夾,去圖),我能夠註冊它。我也從system32註銷MSVBVM60.DLL,發現它已經在SysWOW64中可用。
所以,這個DLL問題解決了!但由於包含文件不同,我又得到了同樣的錯誤。待續...
更新4:最終包含文件錯誤確實是缺少的包含文件。
'> C:\ WINDOWS \ SYSTEM32> regsvr32.exe的MSVBVM60.DLL' 你應該使用C:\ WINDOWS \ SysWow64資料> regsvr32.exe的對64位操作系統 – Zam
相同關於你'Domain.dll寄存器32位的DLL '。把它放入SysWow64文件夾並重新註冊 – Zam
謝謝@Zam,這就是我昨天發現的。如果只有我們已經連接更快! – Nate