我通过 VS 2013 中的 Web 发布将我的 MVC 站点部署到 Azure 位置。我已经从同一台机器和 IP 地址发布了很多次,没有出现任何问题,但昨天它停止工作了。
发布将我的项目 .dll 的旧版本放置在网站上的 bin 文件夹中。这个版本不再存在于我的机器上,它不是项目当前的 Git 状态(并且从来都不是当前的 Git 状态),也不是我的 Release、Debug 或 Demo 编译文件夹中的版本。我不知道它从哪里来。
因此,当我发布时,我会收到与数据库更改相关的错误,因为自旧版本以来,我的上下文背后的模型已发生更改。
所以目前,当我发布时,我必须通过 FTP 进入我的网站,并将 WebPortal.dll 文件替换为我机器 bin 文件夹中的文件,并且该网站可以正常工作。
什么可能导致它恢复到这个旧的 .dll?它来自哪里?我是否以某种方式从发布中排除了超过某个点的更改?
注意 - 我的 View 发布得非常好,它只是 .dll 应该包含模型、 Controller 等的当前编译,但包含了缺少大量内容的旧版本。
JK
最佳答案
服务器上可能存在旧版本的 dll,在发布过程中未被覆盖。您是否尝试过在“发布”对话框的设置部分中选中“删除目标位置的其他文件”。这应该会从您的目标位置删除除您发布的文件之外的所有文件。
如果此后您仍然遇到问题,请尝试发布到本地文件系统,以便您可以准确查看发布发送到服务器的内容。
更新:
将 Web 应用程序发布到文件系统的步骤。
- 在解决方案资源管理器菜单中右键单击您的项目,然后选择“发布”。
- 在“发布 Web”菜单的配置文件部分中,选择“自定义发布类型”,然后点击“下一步”。
- 在“发布方法”下拉列表中选择文件系统。您应该会看到目标位置文本框,您可以在其中指定文件夹。
- 使用常用设置继续执行其余的发布步骤,然后点击“发布”。
关于c# - Azure Web 部署发布旧版本的 MVC 站点 .dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31165912/