部署到 IIS 时出现异常:用户“IIS APPPOOL\DefaultAppPool”登录失败

问题描述 投票:0回答:5

我正在研究“Windows Communication Foundation 4 Step By Step”中的一些 WCF 示例。只要该服务托管在 casini 中,我生成的应用程序就可以正常运行。当我将服务部署到本地 IIS 时失败。当部署到IIS时,我可以在IE中浏览到svc页面。这有效。

根据本书第 41 页,应用程序池帐户需要是我的数据库中 db_owner 角色的成员。作者建议,在验证服务的正确地址(已经这样做)后,检查应用程序池帐户的权限。

如何验证托管我的 WCF 服务的应用程序池使用哪个帐户?当前使用默认应用程序池,并且 IIS APPPOOL\DefaultAppPool 处于 db_owner 角色。 IIS APPPOOL\ASP.NET v4.0 也是 db_owner 角色。

例外是...

System.Data.SqlClient.SqlException: Login failed for user 'IIS APPPOOL\DefaultAppPool'.

如何解决此问题?谢谢!

wcf .net-4.0
5个回答
45
投票

在此处找到解决方案:

    打开 IIS
  • 在“连接”下双击您的电脑名称
  • 单击应用程序池
  • 选择您的应用程序池(DefaultAppPool)
  • 然后在右键的操作下单击高级设置,
    • 转到“流程模型”部分并
    • 单击“身份”。
    • 现在选择网络服务。

2
投票
我也有同样的问题。问题是我有“IntegratedSecurity=True;”在我的连接字符串中,但我使用 sql 身份验证并同时传递凭据。我删除了 IntegratedSecurity 部分,一切正常。


2
投票
如果您使用的是 Windows 身份验证并且您没有在连接字符串中提及任何用户名密码,那么您需要清除的第一件事是:

当您通过本地主机运行代码时会发生什么: 当您从本地主机运行 wcf 测试客户端时,它将能够与数据库通信,因为本地调试模式应用程序正在通过您帐户的服务调用数据库。因此它可以访问数据库,因为 devenv.exe 在您的用户帐户下运行。

但是当您在 IIS 中部署 Web 服务时。现在了解此服务在 IIS 下运行,而不是在您的帐户下运行。所以需要给IIS服务分配访问权限来访问sql server进行windows身份验证。 由于访问权限问题,您的 Web 服务将无法与 SQL 服务器通信。

因此,如果您使用 Windows 身份验证来连接数据库,则只需更改 IIS 应用程序池设置即可。 您需要将 IIS 应用程序池的身份更改为本地系统。

以下是 Windows 身份验证 WCF 的步骤: 打开IIS(windows+R(运行)然后输入inetmgr,然后单击确定) •在“连接”下双击您的电脑名称 •单击应用程序池 •选择您的应用程序池(DefaultAppPool) •然后在右键的操作下单击高级设置: •转至流程模型部分并 •单击“身份”。 •现在选择本地系统。

现在打开你的sql server management studio: 打开运行->然后输入 ssms 然后按确定 在 ssms 中,使用您的 Windows 身份验证帐户登录。 打开安全选项卡 展开登录选项卡 然后您就可以查看您的帐户了。

现在打开您帐户的属性 转到用户映射 然后选择你要连接的数据库 然后检查您要用于所选数据库的角色成员资格服务 单击“确定”。

添加 Trusted_Connection=True;连接字符串中的属性。 保存并部署 Web 服务。 重新启动应用程序池。

您现在就可以连接数据库了。


0
投票
if not exists (select * from sys.server_principals where name='IIS APPPOOL\DefaultAppPool') create login [IIS APPPOOL\DefaultAppPool] from windows;
    

0
投票
如果

Integrated Security = True

不起作用,您需要更改IIS中的应用程序池。

    转到应用程序池 -> 选择您的应用程序 -> 高级设置。
  1. 在“流程模型”中选择“身份”并选择“自定义帐户”。
  2. 将您的机器凭据添加到其中并保存。
  3. 在管理员模式下打开命令提示符并运行命令
  4. iisreset
    
    
尝试再次运行您的应用程序,它应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.