c# - 错误 : "Could not load file or assembly System.Web.WebPages.Razor"

标签 c# wcf razor

莫名其妙的突然出现了这个问题,我无法理解。

我的 MVC 应用程序调用 WCF 服务。那时它遇到了这个异常。这是昨天的工作。我想不出有什么相关的变化,尽管它一定是什么。我可以返回到此应用程序以前的工作版本,但现在出现错误。

为什么在尝试调用 WCF 服务时 WebPages.Razor 会介入?如果我查看我的引用资料,就会发现有一个对 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: '内容类型为text/html;响应消息的 charset=utf-8 与绑定(bind)的内容类型不匹配(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 以某种方式尝试在更新操作期间加载,但失败了。

最佳答案

问题是,我有一个单独的类库来存放我的 WCF 服务。此库已丢失 Microsoft.AspNet.Mvc、Microsoft.AspNet.Razor 和 Microsoft.AspNet.WebPages 的安装。一旦我重新安装了这些 nuget 包,问题就解决了。当然,它们已经安装在 MVC 客户端中。最大的障碍是我无法弄清楚 Razor 如何需要在与 MVC 前端分开的库/项目中参与我的 WCF 服务。该错误具有很强的误导性。

关于c# - 错误 : "Could not load file or assembly System.Web.WebPages.Razor",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45491246/

相关文章:

c# - 使用 Json.Net 处理数据中的换行符

c# - ICommunicationObject.State 不起作用?

web-services - 接收数据大小的 DynamicProxyFactory 错误

wcf - 测试 SOAP WCF Web 服务的 URL 是什么?

asp.net-mvc - 在 DropDownList ASP.NET MVC 中获取选定的项目

c# - 我可以像在 VB 中那样在 C# 中为控件提供索引属性吗?

c# - Console.WriteLine 到 Response.Write?

c# - HttpSessionState 在哪里、如何、优点?

asp.net-mvc - 使用带有半相对URL的Url.Content

c# - MVC 4 中的自动工具提示验证?