维护网站的在线 (Azure) 和离线版本
Posted
技术标签:
【中文标题】维护网站的在线 (Azure) 和离线版本【英文标题】:Maintaining both on-line (Azure) and off-line version of a website 【发布时间】:2014-11-08 09:40:11 【问题描述】:注意:不确定问题是否以正确的方式提出。这就是我对问题的看法,但完全有可能从完全不同的角度解决问题,由于无知,我没有意识到这一点。
问题 是否有可用于开箱即用的 MVC 解决方案的内置数据库?如果是这样,我如何找到它的连接字符串?
当前字符串是用于 Azure 的,看起来像这样(坦率地说,它吓到我了,因为我大部分都不懂)。
<add name="DefaultConnection" connectionString="
Data Source=(LocalDb)\v11.0;
Initial Catalog=aspnet-Plong-20141107210818;
Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|\aspnet-Plong-20141107210818.mdf"
providerName="System.Data.SqlClient" />
背景信息 我正在开发一个站点并将其发布到 Azure。它与数据库有一些连接,我正在使用 Code First 和 Entity Framework。一切都很好(也许除了在显示之前上传和初始化页面需要几秒钟的时间,如果我只对 Razor 的标记进行了更改,这很烦人)。
事实上,一切都是自动设置的,我根本不需要配置太多。现在,由于以下原因,它正咬着我的坐姿设备。
我需要能够在本地主机上运行我的网站(使用 F5,如果你愿意的话)因为我将离线(或者至少在非常糟糕的情况下)联系)。我现在可以这样做,除了联系数据库参考的页面,我在该页面中收到以下错误。
我知道问题所在 - 首先没有使用代码设置本地数据库。我想知道是否有一个懒人的解决方案(使用一些内置的数据库和代码优先)。如果是这样,我在哪里设置它?我更喜欢尽可能完整地保留对默认连接字符串的引用,但是如果我需要编辑它(或者,很可能添加一个新的并引用它),我如何学习正确的连接字符串?! (是的,我知道,这是我为轻松让 Azure 为我配置一切而付出的代价。羞愧地低头。)
“无法检查模型兼容性,因为数据库不包含模型元数据。只能检查使用 Code First 或 Code First 迁移创建的数据库的模型兼容性。”
【问题讨论】:
【参考方案1】:据我所知,这不是到 SQL Azure 的连接字符串,而是用于本地(开发)数据库。它将在您的 App_Data 文件夹中创建一个 .mdf 文件。您可以在 Azure 仪表板的某处找到到 SQL Azure 的连接字符串。例如,我在开发和生产之间切换:
public MyContext : DbContext
public MyContext()
#if DEBUG
: base("development")
#else
: base("production")
#endif
不过,您也可以使用web.config
、web.debug.config
和web.release.config
的XML 转换。请注意,web.debug.config
在本地运行应用程序时并没有真正使用,因此请将您的开发连接字符串放在web.config
中并以发布模式发布您的应用程序,以便进行web.release.config
的 XML 转换。
编辑:获取 SQL Azure 连接字符串
进入管理门户并单击 SQL 数据库。单击数据库并转到仪表板。在右侧,您会看到“显示连接字符串”。它看起来像这样:
Server=tcp:xxx.database.windows.net,1433;Database=your_db_name;User ID=your_user_id;Password=your_password_here;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;
【讨论】:
其实我是从 Azure 门户获取的连接字符串。这就是为什么我认为它是“蔚蓝的”。也许是这样,因为我的网站(上传到 Azure)和数据库都驻留在云中的同一台服务器上?如何找出我在 Azure 上拥有的数据库的连接字符串? (正如我所提到的——这里展示的那个是我从那里得到的,但也许我看错了地方......) @KonradViltersten 我用有关 SQL Azure 连接字符串的信息修改了我的答案。以上是关于维护网站的在线 (Azure) 和离线版本的主要内容,如果未能解决你的问题,请参考以下文章