错误:“无法加载文件或程序集System.Web.WebPages.Razor”

问题描述:

突然之间,我无法理解这个问题突然冒出来。错误:“无法加载文件或程序集System.Web.WebPages.Razor”

我的MVC应用程序调用WCF服务。此时它遇到了这个例外。这是昨天工作。我想不出有什么相关的变化,但它肯定是某种东西。我可以返回到此应用程序的以前工作版本,现在发生错误。

为什么WebPages.Razor会在尝试调用WCF服务时参与其中?如果我查看我的参考文献,则会引用System.Web.WebPages.Razor,并且该位置是有效的。它看起来像这个DLL由Microsoft.AspNet.WebPages nuget包管理...为什么它搞砸了?我已经安装了2.0.20710版本的软件包...在web.config中有很多地方引用了System.Web.WebPages.Razor 2.0.0.0版本。

我的应用程序今天崩溃,昨天工作。任何想法表示赞赏...

这里是web.config中的一个条目的例子:

<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> 

以下是在异常发生点完整的错误消息:

System.ServiceModel .ProtocolException:'内容类型文本/ html;响应消息的charset = utf-8与绑定的内容类型(text/xml; charset = utf-8)不匹配。如果使用自定义编码器,请确保IsContentTypeSupported方法正确实施。第一1024个字节的响应是:'

<head> 

    <title>Could not load file or assembly 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.</title> 

    <meta name="viewport" content="width=device-width" /> 

    <style> 

    body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 

    p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px} 

    b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px} 

    H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red } 

    H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } 

    pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt} 

    .marker {font-weight: bold; color: black;text-decoration: none;} 

    .version {color: gray;} 

    .error {margin-bottom: '.' 

**************************更新** ***************************************

我也注意到我当我尝试在导致问题的WCF Web服务上更新服务引用时得到相同的错误。不知何故,WebPages.Razor试图在更新操作期间加载,并失败。

+1

您是否尝试清洁和重建解决方案? – Gusman

+1

是的,清理,重建,重启,重新启动Visual Studio,更新各种软件包,如Microsoft.AspNet.WebPages,其他,...许多调试技术正在进行中。谢谢。 – Evan

问题是,我有一个单独的类库来容纳我的WCF服务。这个库已经失去了安装Microsoft.AspNet.Mvc,Microsoft.AspNet.Razor和Microsoft.AspNet.WebPages。一旦我重新安装了这些nuget软件包,问题就解决了。当然,它们已经安装在MVC客户端中。最大的障碍是我无法弄清楚Razor如何在MVC前端的独立库/项目中参与我的WCF服务。这个错误非常令人误解。