当前位置: 首页 > 知识库问答 >
问题:

DotNetOpenAuth导致无法加载Assembly System.Web.WebPages.Razor

白越
2023-03-14

我的代码的本地版本运行得很好。但是当我进行web部署时,我得到了以下异常:

无法加载文件或程序集“System. Web. WebPage. Razor, Version=2.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35”或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。(HRESULT的例外:0x80131040)

相关堆栈跟踪线为

[文件加载异常:无法加载文件或程序集“System. Web. WebPage. Razor,版本=2.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。(HRESULT的异常:0x80131040)]Microsoft.Web.WebPages.OAuth. PreApplication ationStartCode.开始()0

这似乎与Razor的Nuget包是3.0版但DotNetOpenAuth包使用2.0版的事实有关

此外,这个问题只发生在我部署到我的Azure网站时。(我目前使用的是免费网站,而不是webrole/workrole的东西)。我使用webdeploy,它在以前的版本中工作正常,但我相信这与nuget包有关。

更新:我无法解决此问题。我曾尝试通过FTP进行部署,在部署之前删除了整个文件夹,但这也不起作用。Nuget是一场噩梦。

共有3个答案

商兴朝
2023-03-14

我使用Git部署,遇到了同样的问题。我没有看到可以在目标位置删除其他文件的选项。

我使用FTP连接到Azure主机,然后删除了/site/wwwroot目录中的所有内容。然后我使用了管理门户、部署选项卡,最后使用了同步命令(即重新部署),解决了这个问题。

袁琪
2023-03-14

我有同样的问题。我正在部署到一个 Azure 网站,我之前在其中部署了 MVC4 应用。我通过“在目的地删除其他文件”来修复它。

右键点击项目-

颜黎昕
2023-03-14

将它放在web.config文件中。这将导致框架将依赖关系重定向到适当的版本。

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <configuration>

从未来编辑

由于上面的语法中指出了一个XML错误,所以我重访了这篇文章,还有一些地方很可能也需要更新。首先,在主web.config中,应该在< code >中更改这一行

<appSettings>
    <add key="webpages:Version" value="3.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=3.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>

基本上,你想识别所有提到razor 2.0.0.0的地方,除了汇编重定向之外,把它们改成3.0.0.0。我相信我已经找到了上面提到的所有地点。

如果您更新整个 MVC 框架,还需要执行其他工作,但这不是问题的基础。

 类似资料:
  • 问题内容: 当我尝试使用Terminal中的命令使用python创建虚拟环境时,出现以下错误: 我不是第一个遇到类似错误的人-我尝试遵循此答案的建议并运行: 那没有帮助。也没有以超级用户身份运行commmand。 接下来我应该调查什么? 问题答案: 我有完全相同的错误消息。Continuum Analytics支持小组的Ray Donnelly提供了以下解决方案,为我解决了这个问题: 当您pip安

  • 我正在尝试使用C++启动jvm。这里是我的cmakelists.txt和ny C++代码。 OpenJDK运行时环境(AdoptOpenJDK)(build 1.8.0_232-B09) OpenJDK 64位服务器VM(AdoptOpenJDK)(版本25.232-B09,混合模式) 主函数运行的结果

  • DotNetOpenAuth 是一个 C# 开发包,用以实现 OpenID 2.0 的提供者、中继方(Relying Party)、OAuth使用者和OAuth服务提供者;同时支持 InfoCard Selector 。一些示例代码。

  • google cloud SDK无法下载,导致此错误。 “find”不能识别为内部或外部命令、可操作程序或批处理文件。

  • 我在Tomcat中实现自己的身份验证过滤器时遇到了一些问题。当我部署项目时,我得到以下日志: 原因:java。lang.ClassCastException:类com。somename。第。sso。卡蒙达。无法将KeyDoppessAuthenticationProvider强制转换为类org。卡蒙达。bpm。发动机Rest安全授权。AuthenticationProvider(com.somen

  • 我已经挣扎了好几天了,因为我无法用业力进行任何真正的测试。我可以运行不需要导入的测试(如基本健全性测试),但一旦我必须从我的应用程序导入某些内容,我就会收到错误: 系统src。js:1085获取http://localhost:9876/base/dist/components/test.service404(未找到)fetchTextFromURL@system。src。js:1085(匿名函数