我最近在 IIS (LocalDB) 上部署了我的网站。但每当我尝试运行该网站时,SQL 都无法连接。我现在已经浏览了数百篇帖子/文章,但无法解决它。
Error
发生网络相关或特定于实例的错误
建立与 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>
我尝试编辑应用程序主机配置 https://stackoverflow.com/a/32399846/4046274.
加载用户资料 http://jaryl-lan.blogspot.in/2016/06/localdb-connecting-to-localdb-failed.html对我来说已经是真的
我的 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>
My IIS manager -
默认应用程序池 -
My web app configuration -
App Pool permission
EDIT -
使用添加了 IIS 应用程序池
icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)
仍然无法连接。
任何帮助表示赞赏。
我在 Windows 10 上使用 Visual Studio 2015 和 SQL Server 2016。