Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 导致无法加载程序集System.Web.WebPages.Razor的DotNetOpenAuth_.net_Asp.net Mvc_Razor_Nuget_Dotnetopenauth - Fatal编程技术网

.net 导致无法加载程序集System.Web.WebPages.Razor的DotNetOpenAuth

.net 导致无法加载程序集System.Web.WebPages.Razor的DotNetOpenAuth,.net,asp.net-mvc,razor,nuget,dotnetopenauth,.net,Asp.net Mvc,Razor,Nuget,Dotnetopenauth,我的本地版本代码运行良好。但是,当我进行web部署时,会出现以下异常: 无法加载文件或程序集“System.Web.WebPages.Razor,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。(来自HRESULT的异常:0x8013100) 相关的堆栈跟踪线是 [FileLoadException:无法加载文件或程序集'System.Web.WebPages.

我的本地版本代码运行良好。但是,当我进行web部署时,会出现以下异常:

无法加载文件或程序集“System.Web.WebPages.Razor,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。(来自HRESULT的异常:0x8013100)

相关的堆栈跟踪线是

[FileLoadException:无法加载文件或程序集'System.Web.WebPages.Razor,Version=2.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT中的异常:0x80131040)] Microsoft.Web.WebPages.OAuth.PreApplicationStartCode.Start()+0

这似乎与Razor的Nuget包是3.0版,而DotNetOpenAuth包使用2.0版有关

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

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

将其放在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中,应将
部分中的此行更改为以下内容

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

此外,视图文件夹中有一个web.config,应更新为以下内容

<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
 <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框架,还需要执行其他工作,但这不是问题的基础。

我也有同样的问题。我正在部署到一个Azure网站,我以前在那里部署了一个MVC4应用程序。我通过“在目标位置删除其他文件”修复了它


右键单击project->publish->Settings->expand File publish Options->选中“在目标位置删除其他文件”。

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


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

查看这篇文章,我看到了那篇文章,并添加了所有内容,使之成为本地副本。但我在这里看到的这个问题是一个包(openauth)正在引用razor dll的版本2,而我从mvc项目中获得了razor dll的版本3。@DanScan-不确定您是否仍然存在此问题,但一条迟到的评论使我重新访问了我的帖子,并添加了一些其他信息。我遇到了类似的问题&这是由于bin目录中较旧的dll在更新过程中未被删除升级部署。一旦我清理了bin目录并只添加了需要的内容,该站点运行良好(这与下面关于部署到Azure的答案基本相同)。它也打破了本地版本。我还尝试了不同的位置来获取这个值,但没有成功。我坚信这与OAuth寻找版本2有关,但MVC包使用Razor包的版本3。根据MSDN,它应该是的子版本,所以我不认为它应该在元素内部。看见但我也有同样的问题,这也没有解决:-(@Steve-在根据您的评论查看这篇文章时,我添加了一些可能有助于解决错误的附加信息。预览并查看附加信息是否对您有帮助!我现在遇到了相同的问题,使用MVC5和Web.API 2.2。在这个最新版本中,两个项目中的两个配置文件都已经有了该代码,但我有same问题作为OP。解决方案(虽然不是真正的答案)是删除nuget MVC的最新版本。然后从命令行加载相应的版本。OAuth包需要不同版本的razor,然后由MVC包加载。