Razor视图:预应用程序启动初始化方法启动类型Microsoft.Web.WebPages.OAuth.PreApplicationStartCode引发异常

时间:2012-08-30 23:07:55

标签: asp.net-mvc razor asp.net-mvc-4 visual-studio-2012

我正在使用Visual Studio 2012中的Asp.net MVC 4项目,当我打开一个视图时,我收到了这个错误:

  

ASP.NET运行时错误:预应用程序启动初始化方法启动类型Microsoft.Web.WebPages.OAuth.PreApplicationStartCode抛出异常,并显示以下错误消息:“DotNetOpenAuth.Reporting”的类型初始化程序抛出异常.. C:\ Users \ escobar5 \ Desktop \ WindowsAzure1 \ MvcWebRole1 \ Views \ Shared_LoginPartial.cshtml

所以我丢失了智能感知,因为在那次错误之后,每次调用ViewBag或模型都说:“无法找到编译动态表达式所需的一种或多种类型”

我从Nuget更新了OAuth包但我仍然收到错误。

项目运行良好,问题只在于剃须刀。

这是错误的屏幕截图,以获取更多详细信息:

Error

有什么想法吗?

提前致谢

5 个答案:

答案 0 :(得分:3)

我发现以下解释并使用nuget包管理器更新DotNetOpenAuth.OAuth.Consumer解决了错误的问题。

https://groups.google.com/forum/?fromgroups=#!topic/dotnetopenid/js58kMaWvvo

答案 1 :(得分:1)

我发现只要我通过NuGet将log4net添加到我的应用程序中,虽然错误没有消失,但Intellisense在文件中工作。

像DotNetOpenAuth的报告模块那样looks依赖于一个名为Logger的类,而后者又依赖于log4net。

答案 2 :(得分:1)

在软件包管理器控制台中选择了错误的项目....我的愚蠢错误。猜猜我应该喝更多的咖啡。

我通过进入Manage NuGet Packages for Solution并单击ASP.NET MVC 4旁边的Manage,然后将该包添加到解决方案中的MVC4项目来解决这个问题。

答案 3 :(得分:0)

如果web.config文件中有this line

<add key="webpages:Enabled" value="true" />

然后删除它。

答案 4 :(得分:0)

我必须执行以下两个步骤来解决此问题。

  1. 更新DotNetOpenAuth.OAuth.Consumer NuGet包。感谢Magnus Karlsson这一点 - 有关详细信息,请参阅his answer
  2. 从Web.Config文件中删除System.Web.Razor的程序集绑定。这是from rana's answer
  3. <dependentAssembly>
        <assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
    </dependentAssembly>