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

发布ASP.NET MVC 4时不编译控制器和类,asp.net,asp.net-mvc,asp.net-mvc-4,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我正在使用VisualStudio2012编写一个MVC4应用程序。我正在编写C#代码,并使用Framework4.5。我的操作系统是Windows7。我已经多次在本地服务器上发布和部署了该应用程序,没有任何问题。但现在我更改了控制器中的一些代码。当我调试我的应用程序时,它工作得很好。但是,当我发布应用程序并在localhost中部署它时,这些更改似乎还没有应用到发布的版本中。例如,如果我有一个错误,我修复并调试它,它可以工作,但当我发布我的应用程序时,错误仍然存在。另一件事是,我的部分代码在调

我正在使用VisualStudio2012编写一个MVC4应用程序。我正在编写C#代码,并使用Framework4.5。我的操作系统是Windows7。我已经多次在本地服务器上发布和部署了该应用程序,没有任何问题。但现在我更改了控制器中的一些代码。当我调试我的应用程序时,它工作得很好。但是,当我发布应用程序并在localhost中部署它时,这些更改似乎还没有应用到发布的版本中。例如,如果我有一个错误,我修复并调试它,它可以工作,但当我发布我的应用程序时,错误仍然存在。另一件事是,我的部分代码在调试模式下工作正常,但在发布模式下工作不正常。这条线就是其中之一

RFH_ComplexRoomReserve firstRoom = db.RFH_ComplexRoomReserve.Where(d => (d.FKComplexRequestID == complexRequest.PKComplexRequestID)).First();
我找了很多,但找不到任何解决办法。我想我犯了一个愚蠢的错误。任何帮助都将提前得到感谢

更新:

我的MVC4Web项目名称是MyWeb。正如我所知,在构建解决方案时,MyWeb.dll文件是在项目目录的bin目录中创建的。发布项目时,MyWeb.dll文件将在发布文件夹的bin目录中创建。我注意到这两个文件大小不同。项目目录中的.dll文件大于发布目录中的.dll文件。当我用项目文件夹中的MyWeb.dll替换发布文件夹中的MyWeb.dll文件时,一切正常。我认为出版过程有问题。但是我找不到

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


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

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

  • 确保我发布到正确的目录(检查已发布应用程序dll的时间戳等)
  • 重置IIS
  • 回收应用程序池
  • 清除IE的缓存

  • 部署到远程服务器时,将配置类型更改为
    Release
    。 转到
    Build
    ->
    配置管理器
    ->
    活动解决方案配置
    ->将
    Build
    更改为
    Release
    ,然后保存
    右键单击项目上的
    发布

    我反复发现相同的问题,但在将我的项目发布到live server时随机出现。视图可以正常发布,但控制器不会更新。 我提出的解决方案是以一种可以使代码重新编译的方式更改代码,但也不会实际更改代码的工作方式。 例如,在:

     if (model == null) return HttpNotFound();
    
    之后:

    if (model == null || false==true) return HttpNotFound();
    
    然后我发布到生产服务器,控制器按预期编译并成功发布

    然后我返回并删除'false==true'代码,这样我就不会在整个代码中留下这样的垃圾


    我已经尝试了这里的其他建议,到目前为止,这是唯一确定的修复此错误的方法。我正在使用VS2015u3,C#/MVC5,发布到服务器2008 R2上的IIS。

    尝试重新启动VS…。它可能会起作用。您确定要发布到服务器上的正确文件夹,即virt目录所指向的文件夹吗?此外,是否存在与发布新版本之前相同的错误?另外,是否选择了“发布前删除所有文件”单选按钮?请更改发布目标位置路径,然后将此已发布代码移动到您的虚拟目录中。或者请在发布网站之前清理你的解决方案。阿伦:我已经多次重启我的VS。克里斯蒂安多夫:是的。我将项目直接发布到我在inetpub中创建的文件夹中/wwww@qakmak:问题解决了。就我所记得的,我的问题没有一个干净的解决办法。我把溶液清洗了好几次。并重新构建了解决方案。正如你提到的,它看起来像一个bug。我删除了旧文件,然后发布了我的应用程序。我可以看到已发布的文件再次被重新生成。