Azure函数上的SQL连接仅适用于localhost

时间:2017-11-09 18:25:11

标签: c# sql-server visual-studio azure azure-functions

我在Visual Studio上运行了azure函数。该函数从Azure(SQL Server)上托管的SQL数据库返回一些数据,在localhost上工作正常,但是当我将它发布到azure时,它返回500错误。

在Azure SQL上,我检查了从其他Azure服务和我的IP地址的访问。

local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "AzureWebJobsDashboard": ""
  },
  "ConnectionStrings": {
    "MySqlConnectionString": {
      "ConnectionString":
        "Server=tcp:webappgtoproject.database.windows.net,1433;Initial Catalog=database;Persist Security Info=False;User ID=xxx;Password=yyy;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;",
      "providerName": "System.Data.SqlClient"

    }
  }
}

代码

string str = ConfigurationManager.ConnectionStrings["MySqlConnectionString"].ConnectionString;

using (SqlConnection conn = new SqlConnection(str))
{
    conn.Open();

    // Check PC
    string text2 = "command text";

    using (SqlCommand cmd = new SqlCommand(text2, conn))
    {
    }

    return true;
}

如果没有SQL连接,它在Azure上运行良好。

1 个答案:

答案 0 :(得分:2)

local.settings.json文件仅在本地运行时使用。您需要在App Settings中定义连接字符串(单击您的Function App并选择App Settings链接)。