首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法摆脱“用户IIS \NETWORKSERVICE登录失败”

无法摆脱“用户IIS \NETWORKSERVICE登录失败”
EN

Stack Overflow用户
提问于 2014-02-16 04:35:54
回答 3查看 893关注 0票数 2

我正在尝试从配置为使用IIS的ASP.NET应用程序访问sql服务器数据库。

我现在有几个问题,

1) IIS中的身份验证:我需要知道站点的身份验证设置是否正常:

我尝试将Windows身份验证设置为“禁用”,但问题仍在继续。

2) 是用户NT权限的设置\Sericio配置良好吗?("Servicio de red“是指网络服务)

3)当我为网络服务添加登录时,我只找到了"Servicio“,我想它与NetworkService相当,对吗?,我的windows 7终极版是西班牙版本,我只是通过使用windows升级使其以英文显示,从而更改了windows界面。它有问题吗?我想是对的,因为对数据库的访问是通过IIS APPPOOL\Servicio de red用户完成的。

我的DefaultAppPool标识设置为AppPoolIdentity

如果你想看看我尝试过的东西,请看这个线程

整个项目以及我正在使用的数据库的备份都可以找到这里,称为MyServiceSolutionInIIS

我正在尝试的是构建一个WCF数据服务,它提供来自从sql服务器数据库生成的实体数据模型的信息。此服务将由WPF应用程序作为客户端使用。

我想避免为它创建一个用户,我认为可以用App来完成

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-16 05:14:41

好的,这样的工作方式,无论您的端点在哪个应用程序池下运行,都会将其凭据传递给Server。所以,你有两个选择:

  1. NetworkService下运行默认应用程序池,或;
  2. 在与web服务连接到Server时使用SQL身份验证。

老实说,后者是最常见的,但在您的情况下,您可以通过更改默认应用程序池来运行NetworkService

票数 1
EN

Stack Overflow用户

发布于 2014-02-16 06:46:28

这与您所选择的身份验证没有任何关系(嗯,大部分没有..可以控制匿名用户在哪些凭据下运行)。每个网站都运行在一个应用程序池中,这个应用程序池有一个AppPoolIdentity。

我有点困惑,为什么它会声称它是DefaultAppPool\ NetworkService,因为NetworkService应该是NT \NetworkService,或者DefaultAppPool\MyAspService或DefaultAppPool\DefaultAppPool。

有关App身份的更多信息如下:

http://www.iis.net/learn/manage/configuring-security/application-pool-identities

注意:IIS7.5( Windows 7和Windows 2008 R2附带的IIS版本)中存在一个错误,如果用户密码更改(例如,如果您有强制密码更改策略),有时会导致AppPoolIdentities的身份验证问题。这里有一个修补程序:

http://support.microsoft.com/kb/2545850/en-us

更多信息在这里:

使用应用程序池标识的IIS应用程序是否丢失了主令牌?

票数 1
EN

Stack Overflow用户

发布于 2015-12-10 06:50:18

发生这个问题的场景太多了。

首先,如果您使用的是windows身份验证,并且在连接字符串中没有提到任何用户名密码,那么首先需要清除:

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

但是当您在IIS中部署web服务时。现在了解此服务在IIS下运行,而不是在您的帐户下运行。因此,您需要将访问权限分配给IIS服务,以访问用于windows身份验证的sql服务器。在这里,由于访问权限问题和user_______登录失败,您的web服务将无法与SQL server通信(在这里,您的用户将来)。

因此,如果使用windows身份验证连接数据库,则只需更改IIS应用程序池设置即可。您需要将IIS应用程序池的标识更改为:本地系统(用于单个窗口用户)。网络服务(供内部网用户或域用户使用)

下面是windows身份验证WCF的步骤:·Open IIS (windows+R (run)然后键入inetmgr,然后单击ok)·双击连接下的PC名称·单击应用程序池(DefaultAppPool)·然后右击“高级设置”下的操作:·转到Process部分,然后单击“标识”。·现在选择LocalSystem (用于单个windows身份验证用户)。或选择Network (供Intranet用户使用)

现在打开您的:打开run->然后键入ssms,然后在ssms中按ok,使用windows身份验证帐户登录。打开“安全”选项卡,展开“登录”选项卡,然后您将能够查看您的帐户。

现在打开帐户的属性,转到userMapping,然后选择要连接的数据库,然后检查要为所选数据库使用的角色成员资格服务,单击“确定”。(对于网络服务,即intranet用户,您也需要为NT权限\系统用户配置上述设置)

在连接字符串中添加Trusted_Connection=True;属性。保存它&部署web服务。重启应用程序池。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21807342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档