2011-11-25 64 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