【问题标题】:Can't connect to SQL localDB instance from application running on IIS service无法从在 IIS 服务上运行的应用程序连接到 SQL localDB 实例
【发布时间】:2020-04-08 17:46:45
【问题描述】:

我正在尝试在开发者机器的 IIS 上运行 DotNetNuke 应用程序。

应用程序启动时无法连接到 SQL 服务器。 事件日志中弹出此错误:

来源:SQLLocalDB 14.0

Windows API 调用 WaitForMultipleObjects 返回错误代码:575。Windows系统错误信息为: {Application Error} 应用程序无法正确启动 (0x%lx)。单击确定关闭应用程序。报告行:3714。

在实例文件夹中我找到了这个或 error.log 文件:

2020-04-08 18:43:59.07 spid52      Starting up database 'dnn_platform'.
2020-04-08 18:43:59.10 spid52      Parallel redo is started for database 'dnn_platform' with worker pool size [1].
2020-04-08 18:43:59.11 spid52      Parallel redo is shutdown for database 'dnn_platform' with worker pool size [1].

应用程序池设置为加载用户配置文件。 localDb 实例文件夹可以访问任何写在那里的人。

我不知道出了什么问题。

我的机器是windows 10。

【问题讨论】:

  • 根据错误信息查找根本原因似乎有点困难。您是否尝试过使用调试诊断工具捕获故障转储并检查内部异常是什么?

标签: iis iis-8 localdb sql-server-2019


【解决方案1】:

为了访问 localDb 服务,用户配置文件必须完全加载。 不幸的是,要在 IIS 上完全启用用户配置文件加载,需要在 C:\Windows\System32\inetsrv\config 编辑 applicationhost.config。 这样做:

  1. 通过添加这个来创建一个新的应用程序池applicationhost.config

    setProfileEnvironment 无法通过 IIS 管理控制台设置,所以您必须编辑此文件

  2. 在 IIS 管理控制台上更改 localDbCompatiblePool 池标识以使用本地或网络用户
  3. 仍在 IIS 管理控制台上更改您的 Web 应用程序或站点设置以使用 localDbCompatiblePool 应用程序池。

    也许可以使用由应用程序池身份创建的用户进行更多调整,但我无法找到。

关于这个问题的完整细节可以在here找到。

【讨论】:

    猜你喜欢
    • 2017-02-24
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 2015-11-02
    • 2016-01-31
    • 2022-10-12
    • 1970-01-01
    相关资源
    最近更新 更多