Iis 7 错误';8013509';在ASP页面中

Iis 7 错误';8013509';在ASP页面中,iis-7,asp-classic,Iis 7,Asp Classic,我们已经创建了一个.Net程序集,并将其作为COM对象进行访问。当我们试图在ASP页面中公开此对象的任何方法时,我们会收到一个错误“80131509”。在实例化对象时,我们没有得到任何错误。i、 e.Server.CreateObject正在通过 这在我们的开发环境中工作得很好,但在UAT环境中我们遇到了这个错误。开发和UAT几乎相同,只是UAT更安全。我尝试了所有可能的方法,但没有成功。我在过去的4天里一直在处理这个问题,我们将非常感谢您的帮助 我怀疑IIS 7在公开该dll时可能存在一些权限

我们已经创建了一个.Net程序集,并将其作为COM对象进行访问。当我们试图在ASP页面中公开此对象的任何方法时,我们会收到一个错误“80131509”。在实例化对象时,我们没有得到任何错误。i、 e.Server.CreateObject正在通过

这在我们的开发环境中工作得很好,但在UAT环境中我们遇到了这个错误。开发和UAT几乎相同,只是UAT更安全。我尝试了所有可能的方法,但没有成功。我在过去的4天里一直在处理这个问题,我们将非常感谢您的帮助

我怀疑IIS 7在公开该dll时可能存在一些权限问题。但不确定会是什么?我们也给予IUSR充分的权利

代码:

set obj = Server.CreateObject("DataAccess")
dim rs
set rs=obj.GetLocations("All") <--- **Here i am getting an error.**
set obj=Server.CreateObject(“数据访问”)
暗淡的

set rs=obj.GetLocations(“All”)我的工作中有一些com dll,我们经常遇到问题,在regasm中注册dll,而dll不工作。它可以在其他活动环境中工作,但由于某些原因,它在这个实例中无法工作。Com DLL是易变的。有时我们会注册它,注销它,重新注册它,然后重新启动。有时他们会神秘地开始工作,有时则不然

还有一些事情可能会出错

确保对dll所在的文件夹和dll本身设置了正确的权限。还要确保存在任何从属DLL,并且具有正确的权限。确保dll需要访问的所有内容也具有正确的权限

如果失败,请打开regedit。搜索与com对象关联的guid。有时,您会发现注册表中的路径都混淆了。清除对com对象的所有引用,重新启动并重新注册它

我还看到构造函数中抛出的异常导致了问题。当com对象启动时,它会爆炸。在我们的一个对象中,添加了一个在异常发生时发送电子邮件的方法

在一个例子中,我们有一个旧的com对象,它不再与我们正在运行的windows版本兼容。如果您已经升级了服务器,那么可能就是问题所在。在我们的例子中,我们编写了自己的组件来替换损坏的旧组件

另外,如果com对象是强类型的,请确保使用“regasm/tlb/codebase fickle_com_object.dll”

简言之,有几种因素会导致com对象无法工作:

  • 注册表中的多个路径
  • 文件夹上的安全权限错误
  • 创建时崩溃

  • 也许其中一件事可以解决你的问题。我知道有时候有多难。祝你好运

    .dll是否已在UAT服务器上注册,即使用
    regsvr32
    ?抱歉,我忘了提及该部分。是的,dll是使用Regasm在UAT服务器上注册的。您是否为32位和64位使用注册了.NET程序集?我不知道经典ASP是作为32位还是64位进程运行(可能是在w3wp.exe下)。请注意,有时对CreateObject的调用可能会以静默方式失败,只有在尝试使用该对象时才会出现错误。我建议您尝试实例化一个Microsoft开发的COM visible.NET对象,以查看系统在原则上是否正常工作,然后再找出特定实现的问题。您是否签出了此链接?