我正在努力将我的Azure移动服务转换为新的Azure移动应用,并希望查看本地数据库。我从一个新的QuickStart项目开始,我可以看到我在Web.config中的ConnectionString是:
<add name="MS_TableConnectionString" connectionString="Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-mobileapp-20160914123002.mdf;Initial Catalog=aspnet-mobileapp-20160914123002;Integrated Security=True;MultipleActiveResultSets=True"
providerName="System.Data.SqlClient" />
但是,当我查看SQL Server对象资源管理器中的(localdb)\ MSSQLLocalDB服务器时,我根本看不到数据库。我正在使用Visual Studio Community 2015,我删除并重新创建了与localDB的连接,但仍然没有运气。我尝试使用相同的名称搜索.mdf文件,看看我是否至少可以手动添加它或者其他东西但我找不到它。由于项目在本地IIS服务器上运行,有没有办法查看服务器正在使用的确切连接字符串?
这是我的SQL Server Explorer的屏幕截图。我看到的唯一数据库是AzureStorageEmulatorDb45 ...
答案 0 :(得分:1)
Azure App Service将使用您定义的实际连接字符串覆盖连接字符串。您始终可以从代码中获取连接字符串。看起来您正在使用ASP.NET类型的Azure移动应用程序,因此以下代码将转储TableController Initialize()方法中的连接字符串:
var connectionString = "MS_TableConnectionString";
var settings = Request.GetConfiguration()
.GetMobileAppSettingsProvider()
.GetMobileAppSettings();
ConnectionSettings connectionSettings;
if (!settings.Connections.TryGetValue(connectionString, out connectionSettings))
{
throw new ArgumentException($"Connection String {connectionString} not found", connectionString);
}
ConnectionString = connectionSettings.ConnectionString;
有关表控制器的更多信息,请参阅我的(进行中)书中的章节:https://adrianhall.github.io/develop-mobile-apps-with-csharp-and-azure/chapter3/dataconcepts/