【发布时间】:2016-07-18 16:36:37
【问题描述】:
我最近在 IIS (LocalDB) 上部署了我的网站。但是每当我尝试运行该网站时,SQL 都无法连接。我现在已经浏览了数百篇帖子/文章,但我无法解决它。
错误
发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。 无法创建自动实例。查看 Windows 应用程序事件 记录错误详情。 )
Windows 应用程序事件日志
Windows API 调用 SHGetKnownFolderPath 返回错误代码:5. Windows 系统错误信息是:访问被拒绝。在第 422 行报告。
第二个日志-
无法获取本地应用程序数据路径。很可能是用户个人资料 未加载。如果 LocalDB 在 IIS 下执行,请确保 已为当前用户启用配置文件加载。
我的连接字符串(都试过了)-
<appSettings>
<add key="ConnectionString" value="Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=test;Integrated Security=True" />
<!--<add key="ConnectionString" value="data source=(LocalDB)\MSSQLLocalDB;UID=SOME_USERNAME;PWD=SOME_PASSWORD;initial catalog=test;connection timeout=30"/>-->
</appSettings>
我尝试编辑applicationHost.config。
Load User Profile 对我来说已经是 True
我的 ApplicationHost.config 文件
<applicationPools>
<add name="Classic .NET AppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" />
<add name=".NET v2.0 Classic" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" />
<add name=".NET v2.0" managedRuntimeVersion="v2.0" />
<add name=".NET v4.5 Classic" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" />
<add name=".NET v4.5" managedRuntimeVersion="v4.0" />
<add name="ASP.NET v4.0" managedRuntimeVersion="v4.0">
<add name="DefaultAppPool" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated">
<processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="true" />
</add>
</applicationPools>
DefaultApplicationPool -
编辑-
添加了 IIS Apppool 使用
icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)
仍然无法连接。
感谢任何帮助。
我在 Windows 10 上使用 Visual Studio 2015 和 SQL Server 2016。
【问题讨论】:
-
您是否为运行应用程序池的帐户启用了加载用户配置文件?
-
@Tim Load User Profile 对我来说已经是 True。
-
是的,但是当您说它对您来说是真的时,您是指您的帐户,还是运行应用程序的应用程序池的帐户?
-
DefaultAppPool 为真。我的网络应用程序使用它。
-
应用池账号是否对DB所在路径有读/写权限?
标签: asp.net sql-server iis sql-server-2016