发布ASP.NET MVC 4时,控制器和类不会编译

时间:2013-06-25 11:07:20

标签: asp.net asp.net-mvc asp.net-mvc-4

我正在使用Visual Studio 2012编写MVC 4应用程序。我正在编写C#代码,我正在使用Framework 4.5。我的操作系统是Windows 7.我已经多次在本地服务器上发布和部署应用程序,没有任何问题。但现在我在控制器中更改了一些代码。调试我的应用程序时,它工作正常。但是,当我发布我的应用程序并将其部署在localhost中时,似乎尚未在已发布的版本中应用这些更改。例如,如果我有一个错误,我修复它并调试它,它可以工作,但当我发布我的应用程序时,错误仍然存​​在。另一件事是我的部分代码在调试模式下工作正常,但在发布模式下没有。这条线就是其中之一。

RFH_ComplexRoomReserve firstRoom = db.RFH_ComplexRoomReserve.Where(d => (d.FKComplexRequestID == complexRequest.PKComplexRequestID)).First();

我搜索了很多但找不到任何解决方案。我想我犯了一个假的错误。提前感谢任何帮助。

更新:

我的MVC 4网站项目名称是MyWeb。据我所知,当我构建我的解决方案时,我的项目目录中的bin目录中创建了MyWeb.dll文件。当我发布我的项目MyWeb.dll文件是在发布文件夹的bin目录中创建的。我注意到这两个文件有不同的大小。项目目录中的.dll文件大于发布目录的.dll文件。当我用项目文件夹中的MyWeb.dll替换发布文件夹中的MyWeb.dll文件时,一切正常。我认为发布过程存在问题。但我无法找到它。

4 个答案:

答案 0 :(得分:0)

  

当我发布我的应用程序时,错误仍然存​​在

这当然意味着一些事情。首先确保您的发布确实发布了一些内容。如果没有,则删除并重新创建发布配置文件可能会有所帮助。还要验证您正在查看要发布的目录。

答案 1 :(得分:0)

如果我是你,我可以尝试以下选项

  1. 确保我发布到正确的目录(检查已发布的应用程序DLL的时间戳等)
  2. 重置IIS
  3. 回收AppPool
  4. 清除IE的缓存

答案 2 :(得分:0)

部署到远程服务器时,将Configuration-type更改为Release。 转到Build - > Configuration Manager - > Active solution Configuration - >将Build更改为Release,然后保存  关于项目的Right-Click - > Publish

答案 3 :(得分:0)

我一再发现同样的问题,但在将项目发布到实时服务器时随机发生。视图发布正常,但控制器不会更新。 我提出的解决方案是以一种导致它重新编译的方式更改代码,但也以一种实际上不改变代码工作方式的方式。 例如,之前:

 if (model == null) return HttpNotFound();

后:

if (model == null || false==true) return HttpNotFound();

然后我发布到生产服务器,控制器按预期编译并成功发布。

然后我回去删除' false == true'之后的代码,这样我就不会在我的代码中留下这样的垃圾。

我在这里尝试了其他建议,到目前为止,这是修复此错误的唯一可靠方法。我使用VS2015u3,C#/ MVC5,在Server 2008 R2上发布到IIS。