我试图在Windows 2008 64位R2框上执行传统的ASP页面。
最初的问题是注册dll:现在已经修复。 在Windows Server 2008 R2上注册DLL文件
现在,当我尝试访问页面时,我得到这个错误
Active Server Pages错误“ASP 0241”
CreateObjectexception
的index.asp
“(null)”的CreateObject导致exceptionC0000005。
服务器对象错误“ASP 0177:c0000005”
当我从Server.CreateObject更改为CreateObject的代码..我最终与此错误
Active Server Pages错误“ASP 0115”意外的错误index.asp
在外部对象中发生可捕获错误(C0000005)。 该脚本无法继续运行。
我检查了我所能做的一切 – 访问和pipe理权限等。应用程序池被设置为无pipe理代码+经典模式。
任何想法来解决这个问题?
你不打算在ASP中解决这个问题。 C0000005是访问冲突异常。 当代码尝试读取未分配的内存时,会发生这种情况。
dll在加载或构建对象时正在做一些不好的事情。
你有没有测试过一个简单的.vbs文件的DLL?
我有完全一样的错误。
在我的情况下,C0000005错误是由缺少依赖引起的。
ProcessMonitor帮助我找到它。 (按进程过滤,并选中“找不到名称”)
在适当的地方复制所需的文件解决了我的问题。 (在我的情况下VB6FR.dll是法语vb6需要依赖的。)
我花了几个小时追逐这一点。
在我的情况下,这是由多次重复使用记录集对象造成的,而不是在数据库调用之间关闭它。 代码在几个类似的情况下工作没有明显的问题,然后其中一个刚刚停止容忍过程。
当我试图关闭页面末尾的记录集时发生错误,这使得排错更加困难。
我清理了代码,确保记录集在两次调用之间关闭,解决了这个问题。
根据我的经验,您正在使用AVG Free,更新之后,您会遇到这种错误。
刚刚遇到这个相同的错误,而试图使用我自己的COM控制,在我的情况下,原来是由我的DLL在调试模式下编译造成的。
有两种方法:
在调试模式下运行IIS。 对于32位,请使用以下行:C:\ Windows \ SysWOW64 \ inetsrv> w3wp.exe -debug
请注意,您必须停止IIS服务,并使用System32中的64位。
编译发行版本:)
我不止一次加载csv文件数据时出现同样的错误。 第1步 – 首先创建一个临时表,将csv数据转移到临时表中,然后移动到主表并删除临时表。 这必须以编程方式完成。
第2步 – 进入MySQL并选择数据库,并使用此查询(SHOW FULL PROCESSLIST;)使用没有brakets。 这会显示正在运行的对象的状态。如果您发现状态为“睡眠”的任何对象,则需要在第二次尝试上传文件之前将其清除。 通常默认的等待时间约为28000秒。 你需要按照要求减少它。 减少等待时间的代码是(SET GLOBAL wait_timeout = 5;)。 使用没有brakets。 使用这个是mysql。 这会将您的全球等待时间重新设置为5秒(根据您的需要更改)。 这应该可以解决你的问题。 祝一切顺利。
您可能想看看这个博客条目,标题为“经典的ASP(ASP 3.0)在32位COM对象的64位上不起作用” http://blogs.msdn.com/b/robgruen/archive/2005/05/26 /422328.aspx
这有点过时,作者不正确地将ASP处理程序称为ISAPI过滤器(它是一个扩展,而不是一个过滤器),但否则信息似乎很好。
如果asp处理程序只被编译为64位,那么不管你做什么,你都不能加载一个32位的COM对象。
作者提到了一些有关COM +解决方案的内容。 我有一种感觉,一个32位的进程COM +包可以加载这个32位的COM对象,并且你的ASP页面可以对这个COM +包进行跨进程调用。
祝你好运,马克