测试部署槽中的连接字符串 (webjobs)

Connection string (webjobs) in test deployment slot

我似乎无法控制我的网络作业正在使用的连接字符串。可能涉及的问题更多,但我不知道到底是什么导致了我的问题。

我有一个生产环境和一个测试部署槽。两者都有 3 个网络作业 运行。所有网络作业和我的网站都在其 app.config 中定义了一个连接字符串。 web.config.

    <add name="SQLAZURECONNSTR_MyConnectionStringName" connectionString="Server=xxx;Database=MyTestDatabase;User ID=xxx;Password=xxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;MultipleActiveResultSets=true" providerName="System.Data.SqlClient" />

当我进行交换时,使用的连接字符串也会被交换,我读到这是设计好的。现在,我希望我的测试环境始终指向我的测试数据库,因此在交换之后,我尝试覆盖 azure 门户中的连接字符串,但这没有任何效果。测试环境仍在使用生产数据库。

只有在我将本地版本(conn.string 指向 TestDB)发布到暂存后,我才看到我的测试网站再次指向 testDB(为什么它没有被 Azure 门户连接字符串设置覆盖?)

然而,昨晚,我做了一个交换,将我的连接字符串(在 app.config 和 web.config 中)设置为 TestDB,发布到 testEnvironment,还将 webjobs 发布到 testEnvironment。他们仍然使用 productionDB...我登录到我的 azure 门户 -> 测试部署槽。它显示没有网络作业(虽然我肯定它们是 运行)。

注意:自从我使用 webjobs 以来,我在发布方面遇到了很多问题。所以也有可能发布出了问题

很多文字,主要是为了阐明我的困惑。它可能归结为几个问题:

以下 blog post 应该可以回答您的部署槽问题。

简而言之:

  • 门户连接字符串始终覆盖 Web 应用程序或 webjob web。config/app.config 连接字符串。
  • 门户有时会显示有关网络作业的无效数据(Azure 门户错误),查看此数据的一种可靠方法是转到 https://{sitename}.scm.azurewebsites.net/api/webjobs
  • 只需确保将二进制文件部署到正确的位置 (`d:\home\site\wwwroot\app_data\jobs\{job_type}\{job_name}.