5

我正在尝试将我的网站部署到我的托管服务提供商并不断收到以下错误:

无法加载文件或程序集“System.Web.Razor”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

[FileLoadException:无法加载文件或程序集“System.Web.Razor”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)]

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

...

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

...

[HttpException(0x80004005):无法加载文件或程序集“System.Web.Razor,版本=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)]

...

该站点是使用 ASP.NET 4 和 MVC 4 构建的。在运行 Windows 8 的开发机器上一切正常。我已将 System.Web.Razor.dll 复制到服务器上的 bin 文件夹中,这没有任何区别,尽管这似乎是 v1.0 版本的程序集(~260k)。

我看过

C:\Windows\程序集
并且没有看到专门针对 System.Web.Razor 的任何内容。但是,我确实有以下两个文件:

  • C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Web.Razor\04eb82505c0086e8eb097d1408183aa0\System.Web.Razor.ni.dll(776k,文件版本:1.0.20105.407)

  • C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Web.Razor\ab032b45c588b488ebca535054d827bc\System.Web.Razor.ni.dll(1823k,文件版本:2.0.20715.0)

但是,即使从这里复制 v2 程序集也不起作用,尽管我认为这不是正确的文件,因为 v1 程序集文件大小也不匹配。

关于这里发生了什么的任何想法?

我猜我的托管服务提供商没有安装任何东西(因为他们一直告诉我把所有东西都放在 bin 文件夹中),但我很好奇为什么我找不到这个 System.Web.Razor v2 DLL任何地方。

为了调试,我还上传了带有基本模板的空网站,效果很好。有趣的是,当我添加对Postal的引用并再次部署时,我得到了错误 - 但即使我将文件还原回来,错误仍然存​​在!为什么会发生这种情况?

任何帮助,将不胜感激。开始觉得有点想不通了。

编辑 1

新建一个空项目,从nuget添加Razor 2,设置System.Web.Razor.dll复制本地(2.0.20715.0,260k),发布,抓取文件上传,还是报同样的错误?似乎这个 DLL 不会被拾取。

编辑 2

最终我放弃了尝试使用有问题的托管服务提供商。他们没有在服务器上安装 ASP.NET MVC 4,我认为这最终是问题所在。尝试了一个安装了这个的不同主机,一切正常。

4

0 回答 0