3

我正在使用 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 Web 项目名称是 MyWeb。据我所知,当我构建解决方案时,MyWeb.dll 文件是在项目目录的 bin 目录中创建的。当我发布我的项目时,MyWeb.dll 文件在发布文件夹的 bin 目录中创建。我注意到这两个文件的大小不同。项目目录中的 .dll 文件比发布目录中的 .dll 文件大。当我用项目文件夹中的 MyWeb.dll 替换发布文件夹中的 MyWeb.dll 文件时,一切正常。我认为发布过程有问题。但我找不到它。

4

4 回答 4

0

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

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

于 2013-06-25T11:10:23.147 回答
0

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

  1. 确保我发布到正确的目录(检查发布的应用程序 dll 的时间戳等)
  2. 重置 IIS
  3. 回收应用程序池
  4. 清除IE缓存
于 2013-06-25T11:12:21.130 回答
0

我反复发现同样的问题,但是在将我的项目发布到实时服务器时随机发生。视图发布正常,但控制器没有更新。我想出的解决方案是更改代码,使其重新编译,但实际上并不会改变代码的工作方式。例如,之前:

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

后:

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

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

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

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

于 2017-09-28T00:06:12.537 回答
0

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

于 2017-08-23T09:39:00.187 回答