asp.net-mvc – 如何处理从ASP MVC版本4.0.0.0到4.0.0.1的转换
这是
Windows update caused MVC3 and MVC4 stop working的后续行动
我还遇到了我的开发机器上的Windows更新导致我的MVC 4项目停止工作的问题.我将程序集引用更改为目标版本4.0.0.1,它开始工作.为了我. 我的问题是该应用程序然后部署在许多Web服务器上.实际上,我们有一个构建服务器,其中构建了客户版本,然后是一些Web服务器. 第一个问题:当我们在生产服务器上运行Windows更新时,旧版本的应用程序将停止工作吗?我猜这个答案是肯定的.我们还没有在构建或生产机器上运行Windows更新. 更改引用意味着它不再可以在构建计算机上构建.我可以通过将Specific Version标志设置为false并将Local Local设置为true来解决此问题.然后它建立在我的开发环境和构建服务器上. 问题:如果我的特定版本为假,检查有多松散?它允许4.0.0.x吗? 4.0.x.x? 4.x.x.x?还是x.x.x.x? 但是,它甚至在thsi配置中构建它然后无法在测试Web服务器上运行(无法找到程序集).这里的问题是我的web.config中有以下内容(根据我从MVC 2升级到MVC 4时的微软说明): <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity culture="neutral" name="System.Web.Mvc" publicKeyToken="31BF3856AD364E35"/> <bindingRedirect newVersion="4.0.0.1" oldVersion="0.0.0.0-4.0.0.1"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect newVersion="2.0.0.0" oldVersion="1.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect newVersion="4.0.0.0" oldVersion="1.0.0.0-3.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect newVersion="2.0.0.0" oldVersion="1.0.0.0"/> </dependentAssembly> </assemblyBinding> 问题是这条线 <bindingRedirect newVersion="4.0.0.1" oldVersion="0.0.0.0-4.0.0.1"/> 用于System.Web.Mvc程序集. (当然,在那一行中它说的是4.0.0.0而不是4.0.0.1.)如果我在测试服务器上改回4.0.0.0那么它可以工作. 我的问题是双重的.部分原因是我希望能够在本地和我们的构建/生产服务器上构建和运行.但是,我们遇到一些情况,我们在同一台服务器上托管了许多运行不同版本应用程序的客户.我们不能强迫所有客户立即升级到最新版本只是因为这个Windows更新修复 – 除了Web应用程序只是更大的应用程序套件的一部分,所以我们必须强制他们升级这个批次! 我想一个选项是检查每个仍在使用的旧版本,更新MVC版本号并创建一个新版本.然后,当我们更新Web服务器时,我们必须将该服务器上的所有客户更新为其当前版本的新(4.0.0.1兼容)版本.我真的希望尽可能避免更新,提交和重建那么多版本. 另一个选择是不在Web服务器上运行Windows更新,并尝试在构建计算机上安装4.0.0.0和4.0.0.1 dll.然后我们可以构建新旧版本.由于任何新版本(使用4.0.0.1)都在MVC程序集上将CopyLocal设置为true(旧版本没有),因此它们应该能够部署到Web服务器,而不会更新Web服务器本身. 问题: >有谁知道是否可以同时安装两个版本?我希望我可以简单地保存4.0.0.0 dll,运行Windows更新然后复制到旧的dll和新的一起回到GAC. 我无法相信我是这种情况下唯一的人,也欢迎任何我根本没想过的解决方案的建议. 解决方法
我是一个团队的成员,从一个稍微不同的角度遇到了同样的问题.它在安全更新错误时发布的错误消息可能会产生误导并且难以解释.当我们尝试将应用程序发布到不同的环境时,我们遇到了部署和构建错误.根本原因是这个补丁是通过某些测试环境中的Windows更新应用的,而不是在其他服务器上应用的.当我们部署应用程序时,任何没有补丁的服务器都会崩溃.我建议让您的系统团队应用补丁并升级所有应用程序以引用此DLL.
Security updates因为引用的库在源代码管理中被忽略,但仍然在Web配置中详细说明,因此需要快速解决.某些环境允许您右键单击并选择在本地使用哪个MVC DLL版本,并仍然可以毫无问题地部署您的应用程序.如果您正在使用Web部署,并且必须能够切换,您可以为每个
Transforms web config编写Web配置转换.我在修复此问题(升级到4.0.0.1)时注意到的一件事是升级到最新版本的MVC.我的项目中的DLL允许我获得最新版本的nuget包.如果您不升级并保留旧版本,您将无法使用旧版本的MVC javascript,jquery和其他库.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何测试Asp.Net MVC视图是否无异常呈现?
- ASP.NET MVC Web应用程序中的控制器是否应该调用存储库,服务
- asp.net-mvc – asp.net mvc – 子文件夹
- asp.net-core – 具有不同root的ASP.Net核心反向代理
- asp.net-mvc – ASP.NET MVC – ModelState.IsValid是false
- asp.net-mvc – 防止在模型中继承验证属性
- asp.net-mvc – System.Web.Mvc.dll发生了什么?
- asp.net-mvc-3 – 如何实现MVC3模型URL验证?
- asp.net – 以编程方式在ASPX页面中设置’visible’属性的值
- asp.net-mvc – 如何清除使用MVC HTML帮助程序定义的文本框
- asp.net – 跟踪间歇性“对象引用未设置为对象的
- asp.net – Chrome浏览器不显示HTTP处理程序生成
- ASP.NET MVC是否使Web表单成为旧版平台?
- asp.net – 如何使用javascript生成假回发?
- asp.net – EmptyDataTemplate和EmptyDataText在
- asp.net-mvc – ASP.NET MVC:如何创建一个可用的
- 优化委托的 `DynamicInvoke`
- .net – MVC中的客户端证书颁发者(指纹)
- asp.net-mvc – 是否可以使用RedirectToAction清
- asp.net – “HttpContext.Current.Session”vs