1

我有一个名为 Palladium 的 SQL Azure 数据库。

我刚刚登录到 Windows Azure 门户,Palladium 现在出现了两次,副本名为 [Palladium] 并带有方括号。

知道这是什么吗?

我正在使用 Code First 并且我一直在摸索不同的连接字符串(今天的严重问题......),它们实际上都出于某种原因指定了 [Palladium]。当我进入新的并单击以生成连接字符串时,它实际上是 [[Palladium]]]。没错,就是最后三个方括号。

正在使用带有代码优先的实体框架,但据我所知,实际删除和修改数据库的部分已被禁用。

解决方案:我仍然不知道那个数据库是什么。它似乎是空的,并且门户似乎被它弄糊涂了(不让我删除它,选择某些东西等)。但是,通过 SSMS,我可以毫无问题地放弃它,现在一切似乎都很好。

4

2 回答 2

1

Brian,尽管您似乎已经解决了您的特定问题,但我想在此处添加一条消息,因为这是针对数据库名称中存在 [] 方括号问题的人的第一批 Google 搜索结果之一。

我以前遇到过这个问题,数据库名称在 azure 上似乎有方括号 []。就我而言,这不是代码优先。假设我使用 Azure 门户创建了一个新数据库,并将其命名为 Palladium。为了获取它的连接字符串,我转到 sql 数据库的仪表板页面,然后单击右侧出现的“显示连接字符串”链接。此连接字符串需要放置在您的 web.config 文件中,以替换 connectionstring="" 的内容。在此之前,请注意由于某种原因连接字符串包含字符串“Database=[Palladium]”。我相信你已经注意到了这一点。这是一个问题。。我不知道为什么Azure坚持在数据库名称周围加上[],但是在将 Palladium 用作连接字符串之前,您必须从 Palladium 周围删除这些方括号。(也不要忘记用实际密码替换字符串“{your_password_here}”)。

这解决了我的问题,几个月来我一直在例行执行此操作,没有任何问题。仍然不知道为什么 Azure 将 [] 放在首位。

我认为这个解决方案甚至适用于使用 codefirst 的人,因为您仍然需要在 Azure 上创建数据库并获取连接字符串,因为代码首先创建表,而不是数据库本身。

于 2013-03-24T16:48:47.213 回答
1

我可以告诉你为什么创建数据库 - 它是由 ASP.Net 通用提供程序创建的。

如果您检查了 [Palladium] 数据库中的表,您会注意到只有 ASP.Net 通用提供程序使用的成员表。(应用程序、成员资格、配置文件、角色、用户和 UsersInRoles)

这些提供程序的功能之一是它们可以在您的数据库中自动为您创建成员资格表。这就是发生在您身上的事情 - 正如加里的回答所示,web.config 周围有方括号。因此,成员表的自动创建过于字面化地使用了该连接字符串,并创建了一个带有方括号的数据库。

我很想知道您是否在 web.config 中留下了方括号并刚刚删除了数据库。如果它在这些条件下开始工作,那么这向我表明这一定是 Azure 错误。

于 2013-03-25T20:41:56.377 回答