Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-本地和暂存环境检测不同的数据库结构_C#_Entity Framework_Asp.net Mvc 3_Sql Server 2012 - Fatal编程技术网

C#-本地和暂存环境检测不同的数据库结构

C#-本地和暂存环境检测不同的数据库结构,c#,entity-framework,asp.net-mvc-3,sql-server-2012,C#,Entity Framework,Asp.net Mvc 3,Sql Server 2012,我有一个在本地开发的应用程序,还有一个在临时环境中开发的应用程序版本。它们都共享托管在另一个远程服务器上的同一个数据库 今天早些时候,托管该数据库的远程服务器因未知原因停机。它现在已经恢复运行,但是我在过去几周对它所做的更改已经消失了 我设法重新创建了我的更改,可能有些表使用了不同的名称(即RequestLog而不是RequestsLog) 在对我的本地版本应用程序进行必要的更改并重新编译后,它就可以工作了。然而,当我发布并部署到我的登台服务器时,它似乎引用了旧的数据库结构 首先,它说存储过程x

我有一个在本地开发的应用程序,还有一个在临时环境中开发的应用程序版本。它们都共享托管在另一个远程服务器上的同一个数据库

今天早些时候,托管该数据库的远程服务器因未知原因停机。它现在已经恢复运行,但是我在过去几周对它所做的更改已经消失了

我设法重新创建了我的更改,可能有些表使用了不同的名称(即RequestLog而不是RequestsLog)

在对我的本地版本应用程序进行必要的更改并重新编译后,它就可以工作了。然而,当我发布并部署到我的登台服务器时,它似乎引用了旧的数据库结构

首先,它说存储过程x不存在,尽管我可以在数据库中清楚地看到它存在。根据暂存环境,另一个现有表仍然缺少一个字段,但在我的本地环境中,该字段存在

两个版本使用相同的数据库,并使用相同的登录和密码。没有权限问题,因为所有者被设置为该数据库的当前所有者

我尝试过的事情:

  • 在临时服务器上的IIS上重新启动应用程序
  • 在临时服务器上回收IIS上的应用程序池
  • 发布前,在解决方案的基础上进行清理和构建(大约5次)
  • 完全重新部署
  • 使数据库脱机,然后将其切换回联机状态
  • 使用本地为IIS Express生成的存储箱替换登台时的存储箱

有人能告诉我为什么会发生这种情况吗?

让我在这里提出一个正确的问题:为什么当服务器停机并进行备份时,您会失去两周的数据库更改?备份是任何开发人员的基准。我每天备份2次所有系统,15分钟都很重要。您好,我查看了数据库备份计划,以找到要恢复的数据库备份副本,但我发现它的日期是6个月前。这让我相信,托管公司并没有重新启动,而是在6个月前进行了映像恢复。这都是你的错。认真地您应该在数据库的自动备份之外对其进行备份。更频繁地使用,每天多次。嗨,我承认错误是因为出于某种原因,无论是谁制定了维护计划,都会将文件写入现场磁盘,而不是场外磁盘。数据库备份计划经过测试是可行的,但是在6个月前和现在之间有一个巨大的时间戳差距,这一差距已经消失。然而,我这里的问题是解决上面列出的问题。请不要改变话题。正如你可能意识到的——我不会改变话题。仅仅是评论。可悲的是,你可能没有答案了——因为你无能为力。您拥有的数据库很可能已损坏。你做过完整性检查吗?