测试部署槽中的连接字符串 (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 以来,我在发布方面遇到了很多问题。所以也有可能发布出了问题
很多文字,主要是为了阐明我的困惑。它可能归结为几个问题:
在什么情况下,Azure 门户连接字符串设置会覆盖 web/app.config 中的连接字符串?
为什么我的网络作业在连接方面表现出不一致的行为。字符串?
如何彻底摆脱这个手动发布webjobs的废话,我使用settings.job方式发布schedule 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}.
我似乎无法控制我的网络作业正在使用的连接字符串。可能涉及的问题更多,但我不知道到底是什么导致了我的问题。
我有一个生产环境和一个测试部署槽。两者都有 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 以来,我在发布方面遇到了很多问题。所以也有可能发布出了问题
很多文字,主要是为了阐明我的困惑。它可能归结为几个问题:
在什么情况下,Azure 门户连接字符串设置会覆盖 web/app.config 中的连接字符串?
为什么我的网络作业在连接方面表现出不一致的行为。字符串?
如何彻底摆脱这个手动发布webjobs的废话,我使用settings.job方式发布schedule 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}.