程序集加载问题
当我从 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
要将 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
?我使用资源管理器在 GAC 文件夹中解决了我的问题。我可以看到
system.runtime.serialization
dll 但是当我对此使用 cmd 提示符时该 dll 文件夹存在于 GAC_MSIL 上,而不是 GAC 上。所以我复制了
GAC 及之后的 GAV_MSIL 中的 System.Runtime.Serialization 文件夹
重新启动 VS 我的项目编译完美。
为了轻松移动dll,我在
cmd.exe
中使用了以下命令:现在我可以在资源管理器中正常打开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 thisfolder 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
:Now I can open the GAC folder normally in your explorer, and you can see the actual structure.
该问题似乎是在尝试加载
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.