我有一个在Visual Studio下运行良好的小型Web API应用程序。但是,当我尝试在IIS下部署它时,我得到了这个:
发生与网络相关或特定于实例的错误 建立与SQL Server的连接。找不到服务器或 无法访问。验证实例名称是否正确 SQL Server配置为允许远程连接。 (提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。 指定的LocalDB实例不存在。 )
该应用程序正在使用sqllocaldb服务器,服务器已启动并查询(通过sqllocaldb info
)为活动并正在运行。我尝试将应用程序池Identity
设置为我的用户ID与使用" ApplicationPoolIdentity",并尝试设置和使用服务器的共享版本。更改用户标识会产生一个不同但同样无益的消息;使用共享服务器没有任何改变。
如果我在连接字符串中使用虚假服务器实例名称,我还确定我可以激发直接在VS中运行的相同消息。
如果错误消息肯定地识别了哪个服务器实例找不到它,但消息中没有任何地方(在浏览器中或在附加的Visual Studio会话中检查时),这将会有点帮助它命名缺少的服务器。
如何识别"不存在"服务器
更新
一位同事解决了我的问题(没有真正回答上述问题)。解决方案是打开我的applicationHost.config文件(在Windows \ System32 \ inetsrv \ config中)并编辑包含我的应用程序的应用程序池的<system.applicationHost> <applicationPools> <add>
项并添加(在<processModel>
元素内){{ 1}}。究竟是什么,我不知道,但他找到了here。