2011-11-25 60 views
2

我用一個函數創建了ASP.NET dll,我需要在經典ASP頁面中使用它。Server.CreateObject在經典ASP中失敗

我用下面的代碼在傳統的ASP頁面

set PeopleSoft = server.createobject("OPS.PSL") 

在執行

Server object error 'ASP 0177 : 80070002' 

Server.CreateObject Failed 

我搜索在計算器我看到了一些解決方案,我提示以下錯誤:創建對象。通過啓用「Make assembly COM-visible」和「Register for COM interop」。

請幫我從這個問題

回答

3

你必須先註冊你的DLL,如果問題仍然存在,這樣做:

  • 找到並單擊下面的註冊表子項: HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的Internet Explorer \ MAIN \ FeatureControl \ FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701
  • 注意如果FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701子項不存在,則必須手動創建它。如果您使用的是64位操作系統,您可能需要使用HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微軟\的Internet Explorer \ MAIN \ FeatureControl \ FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701代替
  • 右鍵單擊FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701, 指向新建,然後單擊DWORD值
  • 鍵入w3wp.exe來命名新的註冊表項,然後按Enter鍵。
  • 用鼠標右鍵單擊w3wp.exe,然後單擊修改。
  • 在數值數據框中,鍵入1,然後單擊確定。

設置此註冊表項後,一個簡單的應用程序池重新啓動將應用更改。除了洗牌應用程序池之外,您的.NET COM組件不再隨意停止工作,而且也沒有真正的解決方案!

+0

沒有爲我工作。 – Robert4Real

1

我有這個問題。當您註冊.NET COM模塊,您必須使用regasm,如果你想從諸如IIS應用程序中調用它們,你必須使用/代碼庫與此命令:

regasm yourfilename.dll /codebase 
0

運行這從命令提示符(更換MyAssembly.dll程序與你的組裝路徑):

%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\regasm.exe myassembly.dll /codebase 
1

我剛剛發生了這個錯誤出現在一個多年來一直運行完美的網站上。看起來一個DLL不知何故成爲未註冊。這是一個非託管的DLL,所以我能夠使用regsvr32重新註冊它:

%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\regsvr32 "C:\path\to\myAssembly.dll" 

(另見difference between regasm and regsvr32