【发布时间】:2014-01-23 11:20:05
【问题描述】:
我们有运行 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 从未使用时开始将它们复制到服务器。
当应用 4.5.1 更新时,我们有近 4000 个网站将受到影响。部分原因是我们很长时间没有进行更新。从未像 MS 所希望的那样直截了当!
非常感谢,
保罗
【问题讨论】:
-
为什么.svcmap在标题中?
-
因为那是被抛出的异常。应该在文本周围加上引号: