我目前正在ASP.NET MVC中编写一个网站,我的数据库(其中没有任何数据,只有正确的表格)使用SQL Server 2008,我已经在我的开发中安装了机。我使用Server Explorer连接到我的应用程序中的数据库,然后是LINQ to SQL映射。
完成网站开发后,我会将其移至我的托管服务,这是一个虚拟主机方案。我担心在生产服务器上使用当前在我的开发机器上运行的SQL Server设置是否很难,因为我必须通过主机控制面板导入所有数据库表。
我注意到可以从Visual Studio内部创建SQL Server数据库。然后将其存储在App_Data目录中。
我的问题如下:
.mdf
文件移入App_Data目录是否有意义?Detach
命令,不是吗?.mdf
文件可能会出现性能/安全问题吗?.mdf
数据库不会计入可以使用我的计划创建的有限数量的SQL Server数据库。我希望这个问题不是太宽泛。提前致谢!
注意:我刚开始使用ASP.NET MVC以及所有这些,所以我可能完全误解了它应该如何工作。
答案 0 :(得分:9)
App_Data MDF是一个SQL Server数据库,它将及时附加到SQL Server实例。访问MDF的唯一方法是连接到SQL Server。 Visual Studio隐藏了幕后发生的事情,但您仍在使用SQL Server实例。 MDF的这种即时附件仅适用于SQL Express版本。在SQL Express 2005中,您最终会得到一个用户实例,请参阅Connecting to SQL Server Express User Instances (ADO.NET)。使用SQL Express 2008,您可以控制用户实例或附加到服务实例。
您必须与托管服务提供商核实,确认他们是否将此数据库计为计划中的 one 数据库。您必须记住,从资源使用的角度来看,通过连接字符串附加数据库(这是使用App_Data MDF部署选项时会发生的情况)与开放和运行数据库的任何其他方式一样昂贵,因此我听到他们允许这样做并且不计入计划中允许的数据库数量,我会感到非常惊讶。
答案 1 :(得分:5)
所有SQL Server数据库都是.mdf
个文件。 .mdf
文件存储在此处: * C:\ Program Files \ Microsoft SQL Server \ MSSQL \ Data * (默认位置)。
您是正确的,您必须从服务器分离SQL数据库以将数据库移动到App_Data文件夹。您可以通过右键单击SSMS中的数据库来执行此操作。
将数据库移动到App_Data文件夹的优点是:
在您通过自定义控制面板上传数据库的场景中,我认为将数据库移动到App_Data文件夹没有任何好处。发布站点时,您只需分离数据库,获取mdf文件并上传(您的控制面板可能有其他方式导入数据库,例如SQL脚本......)。
直接回答你的问题......
移动我的SQL是否有意义 服务器数据库退出SQL Server并进入 App_Data目录为.mdf 文件?
我不这么认为。
如果是这样,我该如何移动它?
分离。您可以通过右键单击SSMS中的数据库来执行此操作。
是否有任何性能/安全性 .mdf文件可能出现的问题 像这样?
我不确定安全性差异但是如上所述,当数据库保持连接到SQL Server时可能会有更好的性能。
我的预期设置是否可以正常运行 典型的虚拟主机方案?
您必须检查它们是否计算/允许动态附加SQL数据库。
我希望这会有所帮助。我不是专家。
答案 2 :(得分:2)
不要将App_Data用于您的数据库。这对于一些快速的“如何”或原型是好的,但它对生产服务器来说并不好。它可能会在维护期间给您带来很多麻烦。我曾经用过一次,再也没用过......
是的,表现。因为它总是必须附加数据库。如果你有一个每天有几个访客的小网站,这不是一个大问题。
如果您的托管服务是否可以,最好询问您的托管服务。
答案 3 :(得分:0)
老实说,这可能无法直接回答您的问题,但我发现您在托管(而非本地)上设置它的方式是将您的数据库移动/导入您的托管公司,然后托管公司会给您一个连接字符串给您主机/分贝。一旦“上线”(或通过将站点上传到主机进行测试) - 在web.config中将连接字符串更改为主机提供的连接字符串。这可能过于简单,但一直对我有用。