我刚刚升级了MVC 3项目(ASP.net 4)中的软件包,现在我在访问该项目中的页面时收到以下错误消息:
' / MyApplication'中的服务器错误应用
无法加载文件或程序集&System; Web.WebPages.Razor, Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'要么 其中一个依赖项。定位程序集的清单定义 与装配参考不匹配。 (HRESULT的例外情况: 0x80131040)描述:期间发生了未处理的异常 执行当前的Web请求。请查看堆栈跟踪 有关错误及其来源的更多信息 码。
异常详细信息:System.IO.FileLoadException:无法加载文件或 assembly' System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral, 公钥= 31bf3856ad364e35'或其中一个依赖项。该 定位程序集的清单定义与程序集不匹配 参考。 (HRESULT异常:0x80131040)
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
装配加载跟踪:以下信息可能对您有所帮助 确定汇编为什么System.Web.WebPages.Razor, Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35' 无法加载。
===预绑定状态信息===日志:用户= IIS APPPOOL \ ASP.NET v4.0日志:DisplayName = System.Web.WebPages.Razor,Version = 2.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35(完全指定) 日志:Appbase = file:/// C:/.../日志:初始PrivatePath = C:... \ bin 调用程序集:Microsoft.Web.Helpers,Version = 2.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35。 ===日志:此绑定在默认加载上下文中启动。日志:使用应用程序配置文件:C:... \ web.config日志:使用主机 配置文件: C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet.config日志: 使用来自的机器配置文件 C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ CONFIG \ machine.config中。 日志:政策后参考:System.Web.WebPages.Razor, Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 LOG: 试图下载新的URL 文件:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files /.../ cb62a7b2 / 327a0353 / System.Web.WebPages.Razor.DLL。 日志:尝试下载新网址 文件:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET 文件/.../ cb62a7b2 / 327a0353 / System.Web.WebPages.Razor / System.Web.WebPages.Razor.DLL。 日志:尝试下载新网址 文件:/// C:/LeGroupeHtmSVN/.../UpDir.Web/bin/System.Web.WebPages.Razor.DLL。 警告:比较程序集名称导致不匹配:重大 版本错误:无法完成装配设置(hr = 0x80131040)。 探测终止。
堆栈追踪:
[FileLoadException:无法加载文件或程序集 ' System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral, 公钥= 31bf3856ad364e35'或其中一个依赖项。该 定位程序集的清单定义与程序集不匹配 参考。 (HRESULT异常:0x80131040)]
Microsoft.Web.Helpers.PreApplicationStartCode.Start()+ 0[InvalidOperationException:预应用程序启动初始化 方法从类型Microsoft.Web.Helpers.PreApplicationStartCode开始 抛出以下错误消息的异常:无法加载 文件或程序集&System; Web.WebPages.Razor,Version = 2.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个 依赖。定位程序集的清单定义没有 匹配程序集引用。 (HRESULT异常:0x80131040)。]
System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 方法)+11711966
System.Web.Compilation.BuildManager.CallPreStartInitMethods()+465
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel,Exception appDomainCreationException)+1167[HttpException(0x80004005):预应用程序启动初始化 方法从类型Microsoft.Web.Helpers.PreApplicationStartCode开始 抛出以下错误消息的异常:无法加载 文件或程序集&System; Web.WebPages.Razor,Version = 2.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个 依赖。定位程序集的清单定义没有 匹配程序集引用。 (HRESULT异常:0x80131040)。]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+11700896 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest) wr,HttpContext context)+4869125----------------------------------------------- ---------------------------------版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.272
在我的web.config文件中,在我的应用程序中,我正在引用System.Web.WebPages.Razor v1.0.0.0:
<dependentAssembly> <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" /> </dependentAssembly>
我甚至不知道我是否可以将System.Web.WebPages.Razor v2.0.0.0与.Net 4一起使用。
现在,我如何找出引用System.Web.WebPages.Razor v2.0.0.0的内容?
答案 0 :(得分:54)
这么简单。在Nuget Package Manager控制台中:
更新 - 打包Microsoft.AspNet.Mvc -Reinstall
答案 1 :(得分:50)
当我执行“删除未使用的引用”时,此问题就开始了。该网站仍在本地计算机上运行,但在发布后无法在服务器上运行。
我通过执行以下操作解决了这个问题,
答案 2 :(得分:27)
如何找出引用System.Web.WebPages.Razor v2.0.0.0的内容?
只需阅读您的异常堆栈跟踪:
Calling assembly : Microsoft.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
所以您似乎正在使用Microsoft.Web.Helpers
,而System.Web.WebPages.Razor, Version=2.0.0.0
又取决于{{1}}。
答案 3 :(得分:8)
经过多次痛苦,谷歌搜索和拔毛后,我最终使用nuget卸载MVC 4,从web配置中删除对MVC,剃须刀和基础设施的所有引用,从bin文件夹中删除dll - 然后使用nuget重新安装所有内容。花了更少的时间才弄清楚dll为什么不匹配。
答案 4 :(得分:7)
在ASP.NET MVC 4中,命名空间不是System.Web.WebPages.Razor,而是System.Web.Razor
这对我有用,请更改你的web.config。
答案 5 :(得分:2)
在向System.Web.Mvc
添加不必要的引用后,我收到了同样的错误。我删除了所有可以找到的引用,但似乎没有任何工作。我最终删除了项目的bin
文件夹,重建后错误消失了。
答案 6 :(得分:1)
我使用Windows控制面板卸载了ASP.NET MVC 4,然后运行AspNetMVC4Setup.exe
(我从https://www.microsoft.com/en-us/download/details.aspx?id=30683获得)重新安装它,并为我解决了这个问题。
换句话说,我不需要使用Nuget或Visual Studio。
答案 7 :(得分:1)
我也收到了这个错误并尝试了我在网上找到的所有内容,但它不会消失。最后,我刚刚将MVC从5.2.3降级到4.0.40804。我不喜欢这个解决方案,因为最终我需要使用MVC 5,但它现在有用。希望这有助于其他人。
答案 8 :(得分:1)
完全重新安装PC后,出现了此处描述的错误。 VS 2017已重新安装,但未重新安装“ ASP.NET Web Pages 2”。重新安装“ ASP.NET Web Pages 2”后,此问题已解决。
答案 9 :(得分:0)
在某些情况下,只需安装网页2即可解决此问题(使用我的案例解决 - 使用web api部署到本地网页)
https://www.microsoft.com/en-us/download/details.aspx?id=34600
答案 10 :(得分:0)
如果之前的工作项目突然出现上述错误,您可以尝试以下解决方案。
这对我有用。
答案 11 :(得分:0)
对于类似的程序集绑定错误,以下步骤可能会有所帮助:
答案 12 :(得分:0)
我第一次尝试Mohammed Emad's answer-没什么好高兴的。然后我尝试了
git clean -x -d -f
使我遇到了一个新的“ Roslyn”错误,我可以通过manually editing my .csproj进行修复。
有趣的是,在我进一步阅读罗斯林问题的页面后,我发现another suggestion的票数更多(Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
)。认为我宁愿实施而不是手动编辑.csproj,而是撤消了.csproj更改,只是发现我的解决方案仍在工作。
因此,毕竟,我想知道,如果我只是简单地先进行git clean,穆罕默德(在此页面上)的答案是否可以解决问题。
答案 13 :(得分:0)
我将MVC4升级到MVC5版本时遇到了相同的错误,首先我升级了依赖于
的调用程序集> System.Web.WebPages.Razor, Version=2.0.0.0
之后,更新了Views文件夹下的web.config文件, 更新了以下来自
的软件包<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
到
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
并已更新
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
到
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
这些步骤对我有用
答案 14 :(得分:0)
通过安装AspNetMVC4Setup.exe(这是链接:https://www.microsoft.com/en-us/download/details.aspx?id=30683)解决了这个问题。
通过重新启动/重新安装Microsoft.AspNet.Mvc程序包对我没有帮助。
答案 15 :(得分:0)
我通过NuGet降级到MVC 4,然后再次升级到5.2.7,它解决了此问题