程序集加载问题

发布于 2024-08-18 00:59:37 字数 2433 浏览 9 评论 0原文

当我从 Vista(32 位)转换为 Windows 7(32 位)时,我遇到了程序集加载问题。当我尝试加载一些非常旧的 Sybase ASE ADO.NET 数据提供程序 DLLS 时,会发生这种情况。

来自融合日志查看器的日志显示了这一点:

    *** Assembly Binder Log Entry  (18/01/2010 @ 5:00:38 PM) ***

The operation failed.
Bind result: hr = 0x80131018. No description available.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Running under executable  c:\windows\system32\inetsrv\w3wp.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = NT AUTHORITY\NETWORK SERVICE
LOG: DisplayName = sybdrvado11
 (Partial)
LOG: Appbase = file:///C:/dev/AgentDesktop/ui/newweb/
LOG: Initial PrivatePath = C:\dev\AgentDesktop\ui\newweb\bin
LOG: Dynamic Base = C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\newweb\f57489cf
LOG: Cache Base = C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\newweb\f57489cf
LOG: AppName = d293c3e5
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\dev\AgentDesktop\ui\newweb\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/newweb/f57489cf/d293c3e5/sybdrvado11.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/newweb/f57489cf/d293c3e5/sybdrvado11/sybdrvado11.DLL.
LOG: Attempting download of new URL file:///C:/dev/AgentDesktop/ui/newweb/bin/sybdrvado11.DLL.
LOG: Assembly download was successful. Attempting setup of file: C:\dev\AgentDesktop\ui\newweb\bin\sybdrvado11.dll
LOG: Entering download cache setup phase.
ERR: Error extracting manifest import from file (hr = 0x80131018).
ERR: Setup failed with hr = 0x80131018.
ERR: Failed to complete setup of assembly (hr = 0x80131018). Probing terminated.

我花了相当多的时间在谷歌上搜索这一点以及通过 ASP.NET 显示的错误消息,并且没有一个常见的解决方案似乎是相关的。我确实注意到有一种方法可以使用病毒检查器来导致此错误。是否可以在原始 Windows 7 计算机上执行此操作?即是否有任何类型的保护系统可以干扰组件加载?

这在 VS.NET 2008 和 VS.NET 2010 beta 2 上都失败了。

任何线索将不胜感激。

I have an assembly loading problem that's cropping up when I convert from Vista (32bit) to Windows 7 (32bit). It occurs when I try to load some very old Sybase ASE ADO.NET data provider DLLS.

The log from the fusion log viewer shows this:

    *** Assembly Binder Log Entry  (18/01/2010 @ 5:00:38 PM) ***

The operation failed.
Bind result: hr = 0x80131018. No description available.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Running under executable  c:\windows\system32\inetsrv\w3wp.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = NT AUTHORITY\NETWORK SERVICE
LOG: DisplayName = sybdrvado11
 (Partial)
LOG: Appbase = file:///C:/dev/AgentDesktop/ui/newweb/
LOG: Initial PrivatePath = C:\dev\AgentDesktop\ui\newweb\bin
LOG: Dynamic Base = C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\newweb\f57489cf
LOG: Cache Base = C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\newweb\f57489cf
LOG: AppName = d293c3e5
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\dev\AgentDesktop\ui\newweb\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/newweb/f57489cf/d293c3e5/sybdrvado11.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/newweb/f57489cf/d293c3e5/sybdrvado11/sybdrvado11.DLL.
LOG: Attempting download of new URL file:///C:/dev/AgentDesktop/ui/newweb/bin/sybdrvado11.DLL.
LOG: Assembly download was successful. Attempting setup of file: C:\dev\AgentDesktop\ui\newweb\bin\sybdrvado11.dll
LOG: Entering download cache setup phase.
ERR: Error extracting manifest import from file (hr = 0x80131018).
ERR: Setup failed with hr = 0x80131018.
ERR: Failed to complete setup of assembly (hr = 0x80131018). Probing terminated.

I've spent a fair bit of time googling this and the error message that manifests via ASP.NET, and none of the common solutions seems to be relevant. I did notice that there was a way to cause this error using virus checkers. Is it possible to do this on a virgin Windows 7 machine? i.e. is there any kind of protection system that can interfere with assembly loading?

This fails on both VS.NET 2008 and with VS.NET 2010 beta 2.

Any clues would be much appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凉栀 2024-08-25 00:59:37

要将 Sybase ASE ADO.NET 与 sybdrvado11.dll 一起使用,您需要另一个文件:MSVCR71.dll
也许 Windows\System32 中缺少它?

To use Sybase ASE ADO.NET with sybdrvado11.dll you need another file: MSVCR71.dll
Maybe it is missing in Windows\System32?

写下不归期 2024-08-25 00:59:37

我使用资源管理器在 GAC 文件夹中解决了我的问题。我可以看到
system.runtime.serialization dll 但是当我对此使用 cmd 提示符时
该 dll 文件夹存在于 GAC_MSIL 上,而不是 GAC 上。所以我复制了
GAC 及之后的 GAV_MSIL 中的 System.Runtime.Serialization 文件夹
重新启动 VS 我的项目编译完美。

为了轻松移动dll,我在cmd.exe中使用了以下命令:

cd\windows\assembly
attrib -r -h -s desktop.ini
ren desktop.ini desktop.bak

现在我可以在资源管理器中正常打开GAC文件夹,您可以看到实际的结构。

I resolve my issue, in GAC folder with explorer. I could see the
system.runtime.serialization dll but when i used cmd prompt on this
folder the dll exist on GAC_MSIL and not on GAC. So i have copied
System.Runtime.Serialization folder from GAV_MSIL on GAC and after
reboot VS my project compile perfectly.

To move dll easly i used the following commands in cmd.exe:

cd\windows\assembly
attrib -r -h -s desktop.ini
ren desktop.ini desktop.bak

Now I can open the GAC folder normally in your explorer, and you can see the actual structure.

枉心 2024-08-25 00:59:37

该问题似乎是在尝试加载 C:\dev\AgentDesktop\ui\newweb\bin\sybdrvado11.dll 时发生的。

这是 Sybase ADO.NET 提供程序所需的非托管 DLL,通常应安装在 PATH 上的某个位置。

The problem seems to occur while attempting to load C:\dev\AgentDesktop\ui\newweb\bin\sybdrvado11.dll.

This is an unmanaged DLL needed by the Sybase ADO.NET provider and normally should be installed somewhere on the PATH.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文