c# - 有人在 Azure Web 应用程序中使用 SQL 依赖项有问题吗?
问题描述
尝试通过带有 SQL 身份验证的混合连接在 .NET 4.7 Azure Web 应用程序中针对本地 SQL 服务器(不是 Azure SQL db)使用 SQL 依赖项。一切都可以在开发系统和我们网络内的其他环境中本地运行,但在部署到 Azure Web 应用服务时却不行。
在 Global.asax.cs 中调用此代码时,Application_Start()
SqlDependency.Start("SomeConnectionString");
它抛出错误:
[参数异常:连接字符串]
System.Data.SqlClient.SqlDependency.Start(String connectionString, String queue, Boolean useDefaults) +493
MyWebApplication.Application_Start() +661[HttpException (0x80004005): connectionString]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +517
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +185
System.Web.HttpApplication .InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +168
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +277
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +369[HttpException (0x80004005): connectionString]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +532
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +111 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +714
解决方案
原来这根本不是 SQL 依赖。Azure Web 应用程序试图从 web.config 中提取连接字符串并且间歇性地失败(这是另一个问题)。将连接字符串移动到应用服务配置解决了这个问题。
推荐阅读
- elasticsearch - G1GC - 年轻集合的数量激增
- c++ - 当我输入一个单词时,即使 if 函数提出的单词与输入的单词完全相同,程序也无法理解该单词
- laravel - 验证输入时间在晚上 9 点 - 晚上 11 点(laravel)
- android - 如何在 Flutter 中向 Android 10 上的 MediaStore (SDK 29) 贡献文件?
- flutter - Flutter:onTapDown 函数并不总是被调用
- python - Pandas 功能聚集 tidyverse-like
- python - 张量的访问元素
- matlab - 使用礼帽校正不均匀背景
- java - 以给定格式将 ArrayList 数据存储到 Object 中
- xamarin - 当用户单击不滚动时如何更改所选项目