模块"scrrun.dll"已加载,但对DllRegisterServer的调用失败,错误代码为0x80004005

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模块"scrrun.dll"已加载,但对DllRegisterServer的调用失败,错误代码为0x80004005相关的知识,希望对你有一定的参考价值。

RT,什么东西?怎么解决?

模块"scrrun.dll"已加载,但对DllRegisterServer的调用失败,错误代码为0x80004005是设置错误造成的,解决方法为:

1、在开始菜单处,点击鼠标右键。

2、选择命令提示符(管理员),如图所示。

3、打开命令提示符。

4、输入regsvr32 jscript.dll。

5、回车,弹出dllRegisterServer在jscript.dll注册成功。问题解决。

参考技术A 貌似出现这个错误代码和权限问题有关,
你试试看点击"开始"进入:程序 - 附件 - 命令提示符,在”命令提示符“上点击鼠标右键,选择”以管理员身份运行“命令,这个时候将打开Dos命令窗口,现在就按正常写法输入Regsvr32 scrrun.dll,就能够注册成功了。
参考技术B 注册动态库时调用失败,以前好像在哪看过!

从网上下载一个scrrun.dll放到原目录,
如果不行就考虑是不是内存问题了!
参考技术C (1)运行输入msconfig回车,打开系统配置实用程序,在启动项目中查找一个名为“****.dll”,如果有将它前面的钩去掉,然后按应用确定(如果没有跳过)。

(2)运行输入regedit回车打开注册表,选编辑查找一个名为“****.dll”的键值项,找到后删除,多查找几次删除干净,然后重新启动电脑即可。

(3)去掉自启动项
开始/运行输入regedit回车打开注册表编辑器,依次展开
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] 右侧,
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]在右侧,
看看有没有你要找的选项(****.dll),如果有删除,重启即可。

如果上述方法无效,请修复一下系统:
1、开机按F8不动到高级选项出现在松手,选“最近一次的正确配置”回车修复。
2、请开机按F8进入到安全模式中用系统自带的系统还原,还原到你没有出现这次故障的时候修复。
3、如果故障依旧,使用系统盘修复,打开命令提示符输入SFC /SCANNOW 回车(SFC和/之间有一个空格),插入原装系统盘修复系统,系统会自动对比修复的。
4、如果故障依旧,在Bios中设置光驱为第一启动设备插入系统安装盘按R键选择“修复安装”即可。
5、如果故障依旧,建议重装操作系统。

asyncio "任务已被破坏,但它正在等待处理!"在 pysnmp 示例程序中

【中文标题】asyncio "任务已被破坏,但它正在等待处理!"在 pysnmp 示例程序中【英文标题】:asyncio "Task was destroyed but it is pending!" in pysnmp sample program 【发布时间】:2017-01-08 23:57:25 【问题描述】:

我正在测试 pysnmp asyncio 模块,一开始使用的是随文档一起提供的sample program。当我运行示例程序时,它给出了Task was destroyed but it is pending! 错误。我检查了类似的问题,但找不到我的(没有经验的)眼睛有什么问题。我在 Debian 8.5 上使用 Python 3.4.2 和随附的 asyncio 以及 pysnmp (4.3.2)

我使用的程序(与pysnmp文档中的示例程序相同)

 
    import asyncio
    from pysnmp.hlapi.asyncio import *


    @asyncio.coroutine
    def getone(snmpEngine, hostname):
        errorIndication, errorStatus, errorIndex, varBinds = yield from getCmd(
            snmpEngine,
            CommunityData('public'),
            UdpTransportTarget(hostname),
            ContextData(),
            ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0))
        )

        if errorIndication:
            print(errorIndication)
        elif errorStatus:
            print('%s at %s' % (
                errorStatus.prettyPrint(),
                errorIndex and varBinds[int(errorIndex) - 1][0] or '?'
            )
                  )
        else:
            for varBind in varBinds:
                print(' = '.join([x.prettyPrint() for x in varBind]))


    @asyncio.coroutine
    def getall(snmpEngine, hostnames):
        for hostname in hostnames:
            yield from getone(snmpEngine, hostname)


    snmpEngine = SnmpEngine()

    loop = asyncio.get_event_loop()
    loop.run_until_complete(getall(snmpEngine, [('demo.snmplabs.com', 1161),
                                                ('demo.snmplabs.com', 2161),
                                                ('demo.snmplabs.com', 3161)]))
  

错误是:

 

     Executing  wait_for= cb=[_raise_stop_error() at /usr/lib/python3.4/asyncio/base_event
    s.py:101] created at /usr/lib/python3.4/asyncio/base_events.py:264> took 0.460 seconds
    SNMPv2-MIB::sysDescr.0 = SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m
    SNMPv2-MIB::sysDescr.0 = SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m
    SNMPv2-MIB::sysDescr.0 = SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m
    Task was destroyed but it is pending!
    source_traceback: Object created at (most recent call last):
      File "multiple-sequential-queries.py", line 58, in 
        ('demo.snmplabs.com', 3161)]))   
      File "/usr/lib/python3.4/asyncio/base_events.py", line 271, in run_until_complete
        self.run_forever()
      File "/usr/lib/python3.4/asyncio/base_events.py", line 244, in run_forever
        self._run_once()
      File "/usr/lib/python3.4/asyncio/base_events.py", line 1075, in _run_once
        handle._run()
      File "/usr/lib/python3.4/asyncio/events.py", line 120, in _run
        self._callback(*self._args)
      File "/usr/lib/python3.4/asyncio/tasks.py", line 237, in _step
        result = next(coro)
      File "/usr/lib/python3.4/asyncio/coroutines.py", line 79, in __next__
        return next(self.gen)
      File "multiple-sequential-queries.py", line 50, in getall
        yield from getone(snmpEngine, hostname)
      File "/usr/lib/python3.4/asyncio/coroutines.py", line 79, in __next__
        return next(self.gen)
      File "multiple-sequential-queries.py", line 31, in getone
        ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0))
      File "/usr/lib/python3.4/asyncio/coroutines.py", line 79, in __next__
        return next(self.gen)
      File "/usr/lib/python3.4/asyncio/coroutines.py", line 141, in coro
        res = func(*args, **kw)
      File "/usr/local/lib/python3.4/dist-packages/pysnmp/hlapi/asyncio/cmdgen.py", line 138, in getCmd
        addrName, paramsName = lcd.configure(snmpEngine, authData, transportTarget)
      File "/usr/local/lib/python3.4/dist-packages/pysnmp/hlapi/lcd.py", line 87, in configure
        transport
      File "/usr/local/lib/python3.4/dist-packages/pysnmp/entity/config.py", line 308, in addTransport
        transport)
      File "/usr/local/lib/python3.4/dist-packages/pysnmp/carrier/asyncio/dispatch.py", line 70, in registerTransport
        self.loopingcall = asyncio.async(self.handle_timeout())
    task: :4> wait_for= created at /usr/local/lib/python3.4/dist-packages/pysnmp/carrier/asyncio/dispatch.py:70>

 

非常感谢任何帮助解决这个问题!

谢谢。

【问题讨论】:

这看起来像 pysnmp 中与关闭时定期定时器功能取消有关的错误。这是有关此事的更多信息docs.python.org/3/library/…。在 github 上打开问题或发送 PR 可能是一种方法。 ;) 谢谢!让我打开一个问题。 【参考方案1】:

pysnmp 中有一个内部计时器函数,用于处理缓存、重试等。使用异步传输,该计时器由 asyncio Future 驱动。您观察到的消息警告您,在主循环关闭之前,Future 对象仍处于挂起状态。

要解决此问题,您需要在完成所有 SNMP I/O 后取消挂起的计时器任务。一种 [hackerish] 方法是将以下 sn-p 附加到您提到的示例脚本中:

...

snmpEngine = SnmpEngine()

loop = asyncio.get_event_loop()

loop.run_until_complete(getall(snmpEngine, [('demo.snmplabs.com', 1161),
                                            ('demo.snmplabs.com', 2161),
                                            ('demo.snmplabs.com', 3161)]))

# run a coroutine to cancel pending timer task

from pysnmp.hlapi.asyncore.cmdgen import lcd

@asyncio.coroutine
def unconfigure(snmpEngine, authData=None):
    lcd.unconfigure(snmpEngine, authData)

loop.run_until_complete(unconfigure(snmpEngine))

我正在努力将类似的协程添加到 pysnmp 中,以便您可以开箱即用地运行它。

【讨论】:

以上是关于模块"scrrun.dll"已加载,但对DllRegisterServer的调用失败,错误代码为0x80004005的主要内容,如果未能解决你的问题,请参考以下文章

模块XXX已加载,但对XXX的调用失败,错误代码0x80004005,何解 ?

EXCEL VBA 里面如何动态获取字符串转换为变量名?

VMWare虚拟机提示:另一个程序已锁定文件的一部分,进程无法访问...模块"Disk"启动失败

Pokeapi pokemonDetails.map 不是函数 & 已修复 [模块 '"react-router-dom"' 没有导出成员 'RouteComponentP

模块"actxprxy.dll"已加载,但对DllRegisterServer的调用失败,错误代码0x80070005 怎么解决

模块"MSCOMCTL.OCX"已加载,但对DllRegisterServer的调用失败,错误代码为0x8002801c,系统是WIN8