获取"无法解析类型名称或别名FooController"在不同的服务器上

时间:2014-11-24 01:19:20

标签: c# asp.net asp.net-mvc unity-container

有没有人知道我如何追查此错误的根本原因:

  

无法解析类型名称或别名FooController

我有一个使用Unity的ASP.net MVC Web应用程序。我的应用程序本地运行正常但是,当我将站点发布到远程服务器时,我得到上面的错误。

我尝试了两个不同的远程服务器并得到了同样的错误。但是,当我将该站点发布到我的本地开发盒上的不同目录时,它可以正常工作。因此,我将本地工作副本复制到远程服务器。我得到了同样的错误。我重新安排了Unity配置文件中控制器的顺序,错误将始终显示文件中的第一个控制器。也就是说,如果我将BarController的类型注册移到FooController之上,则错误将显示:

  

无法解析类型名称或别名BarController

因此,无论何时在Unity配置文件中遇到控制器,它都会失败,但仅在远程服务器上失败。它的问题不在于与指定的控制器相关联。

因此,它接缝问题是环境问题。也许远程服务器在GAC中遗漏了一些东西,我在我的本地开发盒上。我查看引用并没有看到自我们上一次发布以来添加的任何新内容,但我可能会遗漏一些内容。

有没有人知道我如何找出这个问题的根本原因?错误消息并没有告诉我什么。我需要知道为什么无法解析FooController。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。我在其中一个远程服务器上设置了开发环境。我注意到Web项目中的一个引用存在问题。 MVC组件需要修复。所以我删除并重新添加它。工作就像一个魅力。

看看这个变化,这就是我所看到的:

enter image description here

左边的代码是我的本地开发框。它引用了版本3.0.0.1,右边的代码是在我修复了远程服务器上的引用之后。它引用的是3.0.0.0版本。

它接缝我的本地开发盒有一些奇怪版本的ASP.net MVC安装。所以我卸载它,并从最新发布的版本重新安装,并从本地开发版本重新发布代码,它工作正常。

在进一步研究之后,这似乎是问题的根本原因:

Windows update caused MVC3 and MVC4 stop working