gpt4 book ai didi

c# - Reference.svcmap : Could not load file or assembly 'xxx' after . NET 4.5.1更新

转载 作者:行者123 更新时间:2023-11-30 18:30:38 29 4
gpt4 key购买 nike

我们有运行 4000 个 .NET 4.0 网站的 Win2k8 服务器。我们已经尽可能地推迟了框架更新,并且在浏览器检测方面遇到了 __dopostback() 的问题,我们无法再解决这个问题。

我克隆了我们的一台服务器 (VM) 并只安装了 .NET 4.5.1 更新。

我们现在遇到的问题是,4.5.1 的行为似乎已经发生变化,即针对模块中但未上传到服务器的 DLL 引用抛出异常。

例如,我们有一个以 dotless.core.dll 作为引用的 Support.DLL。这仅用于 Windows 服务(引用 support.dll),但从未在 Web 应用程序中使用,因此 dotless.core.dll 从未上传(也不应该)到网站。

=== Pre-bind state information ===
LOG: DisplayName = dotless.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=96b446c9e63eae34
(Fully-specified)
LOG: Appbase = file:///C:/inetpub/root/2362/Sites/3168/Site/
LOG: Initial PrivatePath = C:\inetpub\root\2362\Sites\3168\Site\bin
Calling assembly : Support, Version=2.1.0.0, Culture=neutral, PublicKeyToken=null.

.NET 4.0 框架从不提示,只是忽略了这些缺失的引用。 web.configs 中没有引用。

如果我卸载 4.5.1 框架更新,问题就会消失。因此,这似乎确实是更新中的行为更改。是否有 registry/machine.config 选项来禁用此新行为?

不太理想,但将此 DLL 放入 GAC 可以解决问题,但我们不想在 DLL 从未使用时开始将它们复制到服务器。

我们有近 4000 个网站将在应用 4.5.1 更新时受到影响。我们这么长时间没有进行更新的部分原因。从来没有像 MS 希望我们相信的那样直截了当!

非常感谢,

保罗

最佳答案

您实际上可以解决根本原因,因为浏览器检测问题有一个修补程序:http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx

MSDN 对这种改变的行为只字不提:http://msdn.microsoft.com/en-us/library/hh367887%28v=vs.110%29.aspx .你有堆栈跟踪吗?也许 .NET 4.5.1 中的某些其他更改会导致您的代码指向 DLL 中引用丢失的 DLL 的位置?

我创建了一个小型解决方案、一个类库和一个引用该类库的控制台应用程序。如果您将参数传递给控制台应用程序,它会调用类库,否则不会调用。我编译它并删除了类库DLL。结果:当我通过参数时,它提示它无法加载程序集,否则根本没有任何问题。引用加载仅在您实际输入引用它的方法时发生。所以我认为在这方面没有任何新的行为。

关于c# - Reference.svcmap : Could not load file or assembly 'xxx' after . NET 4.5.1更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21306658/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com