如何配置 IIS 10 以从本地 SQL 数据库文件读取?

如何配置 IIS 10 以从本地 SQL 数据库文件读取?

我一直在尝试使用 MVC 模板通过本地 SQL 数据库文件进行身份验证来部署原始 ASP .NET Web 应用程序。到目前为止,我能够让它在我的计算机上运行。当我将其发布到远程服务器上的文件夹时,我似乎无法弄清楚如何配置 IIS 10 以从保存到其 App_Data 子目录中的本地 SQL 数据库文件中读取。结果我收到以下错误:

SQL 网络接口错误 52 - 无法找到本地数据库运行时安装。请验证 SQL Server Express 是否已正确安装,以及本地数据库运行时功能是否已启用。

我尝试通过在远程服务器上安装 SQL Server 2012 Express 来修复该问题,但问题仍然存在。所以我认为问题可能来自连接字符串:

数据源=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20180923034052.mdf;初始目录=aspnet-WebApplication1-20180923034052;集成安全性=True”providerName="System.Data.SqlClient

以上是我电脑上的内容。由于我在远程服务器上将 SQL 服务器配置为默认服务器,因此我认为我应该匹配 SQL 服务器数据库引擎的名称,默认情况下该名称为 MSSQLSERVER,如下所示。但它也没有起作用。

数据源=.\MSSQLSERVER;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20180923034052.mdf;初始目录=aspnet-WebApplication1-20180923034052;集成安全性=True”providerName="System.Data.SqlClient

我缺少什么配置才能使这个简单的 ASP .NET Web 应用程序运行?

答案1

为了使项目创建的默认连接字符串正常工作,您需要安装SQL 服务器本地数据库在远程服务器上。这是一个与主安装不同的安装。以下是关联到你可以下载的地方Microsoft SQL 服务器 2012 LocalDB

之后,设置项目发布的目录以使用本地系统作为其应用程序池IIS 管理器. 按照参考操作这里

  1. 点击应用程序池IIS 管理器
  2. 点击添加应用程序池...创建新的应用程序池。使用您想要的任何设置和名称。
  3. 选择新的应用程序池后,单击高级设置...并改变身份本地系统点击...。它位于下拉菜单中内置帐户
  4. 点击好的保存并关闭所有弹出窗口并返回至IIS 管理器
  5. 选择项目发布到的目录并点击高级设置...
  6. 改变应用程序池到新创建的应用程序池并单击好的完成。

请注意,保留应用程序池运行为本地系统正如解释的那样这里,但这对于测试目的来说已经足够了。

答案2

我所做的是将 appool 作为用户添加到 SQL Server。即,在 SQL Server 级别,转到安全性。添加新登录名。将 IIS APPPOOL\APPPOOLNAME 添加为用户。不要检查用户或执行任何操作。接受默认值并将 appool 用户添加到 SQL Server。授予此用户对数据库的读/写权限,就这样。 MSDN BLOG 参考

相关内容