我正在使用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文件时,一切正常。我认为发布过程存在问题。但我无法找到它。
答案 0 :(得分:0)
当我发布我的应用程序时,错误仍然存在
这当然意味着一些事情。首先确保您的发布确实发布了一些内容。如果没有,则删除并重新创建发布配置文件可能会有所帮助。还要验证您正在查看要发布的目录。
答案 1 :(得分:0)
如果我是你,我可以尝试以下选项
答案 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。