0

我使用带有 mdf 的 localdb 在我的笔记本电脑上创建了一个 MVC4 Web 应用程序。文件。然后我将项目导出到我的桌面,然后我将这些文件复制粘贴到我的运行 IIS 的 Win2k12 上的网络服务器上。

复制它后,我在运行在同一 Win2k12 服务器上的 MSSQL Express 2012 服务器上创建了表,并在我的项目中修改了 web.conf 以定位服务器而不是 mdf 文件。

这就是一切停止的地方,当我尝试发送数据时出现以下错误(应该与 sql server 通信,只要不尝试与 sql server 通信,浏览页面就可以了):

无法打开登录请求的数据库“mc.foo.net”。登录失败。用户 'IIS APPPOOL\mc.foo.net' 登录失败。

而且我猜用户 IIS APPOOL 是从我的笔记本电脑继承的东西,我在 Win2k12 服务器上没有这个用户。我该如何改变呢?和什么?我有几个用户(来自 SQL Server Manager 中服务器的安全性):

  • NT AUTHORITY\SYSTEM
  • NT 服务\MSSQLSERVER
  • NT 服务\SQLWriter
  • NT 服务\Winmgmt

除了我的域管理员。我怎样才能解决这个问题?

4

2 回答 2

0

您可以在 IIS 管理器中轻松更改应用程序池标识。在目标应用程序池上(在 Root/application pools 下),选择Advanced Settings。这是一个 Category Process Model,您可以在其中指定池的标识。

水池

内置帐户允许您使用网络服务/本地系统/... 而自定义允许您指定域或本地用户。就这样 !

不建议对应用程序池赋予过多的权限。这可能会损害您的应用程序的安全性,并且有时管理起来会很痛苦。因此,我强烈建议您对数据库使用 sql 身份验证并加密连接字符串。

于 2013-06-24T10:24:24.453 回答
0

您的问题似乎用户在数据库服务器上没有权限。

有多种方法可以解决这个问题。

  1. 如果您通过集成安全连接到数据库...将其更改为本地 SQL 服务器或域用户名和密码。

  2. 授予您的 appPool 帐户 dataReader 或 dataWriter 访问权限(不推荐用于生产)。

于 2013-06-24T22:06:11.743 回答