我们已将我们的应用程序服务升级到S1,并希望设置自动备份。这是一个带有SQL数据库的.net核心应用程序。对于数据库部分,我得到以下信息:
在应用中未找到支持的SQL数据库或MySQL类型的连接字符串。
我已经采用了由以前的开发人员构建的这个项目,而现在才开始湿透。我了解可以在应用程序设置中添加连接字符串,但我担心它会破坏应用程序。
例如,现在在代码本身中的appsettings.json
{
"Data": {
"ConnectionStrings": {
"ConnectionString":"Server=****;Initial Catalog=*****;Persist Security Info=False;User ID=*****;Password=*****;MultipleActiveResultSets=True;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
//"ConnectionString":"Server=****;Initial Catalog=*****;Persist Security Info=False;User ID=*****;Password=*****;MultipleActiveResultSets=True;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
}
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
其他开发人员设置的方式是登台连接字符串,发布到生产时会被注释掉,发布到登台时会被替换为appsettings.json
。在上面的示例中,还有另外一个仅用于localhost
开发。
此连接字符串在Startup.cs
public void ConfigureServices(IServiceCollection services)
{
...
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration["Data:ConnectionStrings:ConnectionString"]));
}
现在这可能是一个愚蠢的问题,但是如果在Azure设置中的应用程序中,如果我在其中添加连接字符串以利用自动备份,我是否会破坏任何内容?我指的是选择应用程序,单击“配置应用程序设置”,然后添加连接字符串。
我现在也不使用插槽。因此,我的目标是现在(随着我对我尚未开发的应用程序的更多了解并学习如何使用Azure),我们将:
看起来很傻,我对这种环境是陌生的,只是有点偏执。我的直觉告诉我,代码将执行并保持不变,但是在部署时,我不确定Azure是否在幕后进行了某些操作,从而导致这些操作在我的脑海中浮现。
答案 0 :(得分:1)
在应用中未找到支持的SQL数据库或MySQL类型的连接字符串。
要连接到数据库,其连接字符串必须存在于Azure门户上Connection strings
页的Application Settings
页的reset
部分中。
因此,我建议您可以转到门户网站检查配置,以确保连接字符串值正确或可用。正确的连接字符串格式列表位于以下site。
有关更多详细信息,请参阅how application settings and connections work。
要记住的最后也是最重要的一点是 Azure Backup功能缓存连接字符串。设置备份后,对连接所做的任何更改都不会反映出来。
如果更改,则必须点击备份刀片中的public override void OnActionExecuting(HttpActionContext actionContext)
{
if (!actionContext.ModelState.IsValid)
{
actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest, GetModelStateErrorMessages(actionContext));
}
}
按钮,然后再次设置备份。这样可以确保引入新的连接字符串。
答案 1 :(得分:0)
我遇到了同样的问题,幸运的是,我有一个可以在另一个Web应用程序上工作的软件, tcp:和 1433 对我来说是固定的,它开始出现:
"name": "NameHere",
"value": "Data Source=tcp:sqlservername.database.windows.net,1433;Initial Catalog=DatabaseName;User ID=sa;Password=password",
"type": "SQLAzure",
"slotSetting": true