问题标签 [applicationpoolidentity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
91 浏览

asp.net - asp.net 应用程序/站点模拟是否会影响池上的其他应用程序/站点

我在授权某些 sql server 数据库时遇到问题,因此为了临时修复它,我在我的 ASP.NET 应用程序中使用了模拟配置部分。

一切都对我有用,这不是解决方法,它只是一种解决方法。但我想知道,这是否会影响在此应用程序池上运行的其他应用程序和服务?

另外我想知道它是否会显着影响性能问题?对此 ASP.NET 应用程序处理的每个请求都执行 AFAIK 模拟。

谢谢。

0 投票
1 回答
5496 浏览

asp.net - DirectoryServicesCOMException 80072020 来自在 ApplicationPoolIdentity 下运行的 IIS 7.5 站点

我在寻找不时尝试获取给定用户的用户组时出现 ASP.NET 4 应用程序失败的问题时遇到了麻烦。与此应用程序关联的应用程序池设置为在 ApplicationPoolIdentity 下运行。

异常信息

堆栈跟踪

在 95%-99% 的情况下,此功能可以正常工作,但有时会开始失败。当我将应用程序池更改为使用 LocalSystem 或 NetworkService 时,它​​开始工作。当我改回 ApplicationPoolIdentity 时,它再次开始失败。使站点再次使用 ApplicationPoolIdentity 的唯一方法是重新启动服务器。

我能够在这里找到类似的问题,但解决方案也是重新启动。我想找到一个更持久的解决方案,而不是更改应用程序池的身份。

0 投票
2 回答
2412 浏览

.net - 如何在不将应用程序池标识设置为本地系统的情况下从网站重新启动应用程序池?

我在 .Net 中有一个应用程序,它为其他应用程序执行各种管理/配置。我需要能够停止和启动应用程序池。我已经实现了这一点,但前提是我将应用程序池作为本地系统运行(这通常被认为是一个坏主意)。

最初我使用 Process.Start 启动 appcmd.exe(使用适当的 ProcessStartInfo 对象),但这最终导致我的退出代码为 -1073741502,进一步的研究表明我需要使用 windows SDK 进行调试,因为它与程序集未加载,所以我在命名空间中发现了一个更简单的解决方案Microsoft.Web.Administration

我使用下面的代码,但它似乎要求运行它的 AppPool 具有本地系统的身份(否则我会得到System.UnauthorizedAccessException) - 有没有办法使用特权较低的帐户启动/停止(我更喜欢使用应用程序身份) - 虽然暂时提升权限也是可以接受的。

我已将自定义帐户设置为身份,但我无法确定该用户需要的最小 ACL。作为测试,我将用户添加到本地管理员组,但仍然得到System.UnauthorizedAccessException- 这表明我需要为用户配置特定权限,但我不确定这是什么或如何做。任何人都可以帮忙吗?

问题也在这里解释

0 投票
1 回答
8049 浏览

application-pool - 'DefaultAppPool' is being automatically disabled due to a series of failures

Having a tough time with this issue. Not sure how but my ApplicationPoolIdentity is broken.

Currently I'm running IIS 8 on Windows 8 with Visual Studio 2012. When trying to debug an application from Visual Studio, or just navigating to the site in a browser I get the following error logged and a 503 error.

If I check out the Application error logs, I find the following error from the User Profile Service.

Upon looking into the details I find that the User Profile Service is trying to load up a profile with the Id

S-1-5-82-3006700770-424185619-1745488364-794895919-4004696415

Now I opened up the registry to try and find the profile with that UserId. However there's nothing in the Profile list that helps.

No profile with the ID here

So digging around a little more I've found that this issue can be resolved by either

A) Set the Load User Profile of the Application Pool to false.

B) Use a different account for the application pool.

C) Fix the account.

Seeing how this is the built in account, I'd prefer to fix the issue rather than fix the sympton.

What I have tried

  • aspnet_regiis -i
  • Removing IIS from windows and reinstalling.
  • Attempted to follow the guide here but I don't know the account password :P

My hunch

Somehow the ApplicationPoolIdentity got messed up. Is there any physical folders for the built-in accounts? I know that the Network and Local service profiles physical directories exist at C:\Windows\ServiceProfiles\. It is possible to recreate the ApplicationPoolIdentity profile? Or am I way off on what the real issue is?

0 投票
5 回答
1091 浏览

asp.net-mvc-3 - 使用自定义应用程序池身份拒绝目录列表

我有一个 ASP.Net MVC3 应用程序,它在我的 IIS 6 服务器上的默认应用程序池中运行良好。

我需要让它在自己的服务帐户下运行,所以我创建了一个新的应用程序池并将应用程序移入其中。使用默认设置,应用程序继续正常工作。

我在应用程序池上设置了一个自定义身份,应用程序现在只给我“目录列表被拒绝”错误。

我尝试将身份切换回网络服务,并且应用程序再次开始工作。

是什么阻止了应用程序使用自定义身份运行?这就像 ASP.Net 甚至没有启动。

我已经运行aspnet_regiis -ga <domain\username>并将该帐户添加到 IIS_WPG 组,因此身份帐户应该可以访问 ASP.Net。

更多信息

我一直在使用 Process Monitor 进行一些诊断,它表明 aspnet_isapi.dll 没有加载自定义标识。

当身份是“网络服务”时,我可以看到加载了 aspnet_isapi.dll,然后是 webengine4.dll。这会在 NTLM 身份验证发生后立即发生。

使用自定义身份,NTLM 身份验证发生,然后 w3wp 进程开始查找默认文件(Default.aspx、Default.htm 等)。

我已经检查过了,该帐户可以访问存储这些 DLL 的框架版本文件夹。

0 投票
1 回答
162 浏览

iis - ApplicationPoolIdentity 与普通用户浏览器浏览有什么不同?

我的 Web 服务器运行一个 exe 文件(第 3 方),它捕获 Web 浏览器的屏幕(使用 IE7/IE9 的模拟器)。屏幕包含显示两列的 java 脚本 Extjs 控件。每列包含一个图像。

1)当我的用户将 exe 运行到此 url 时,我按顺序获取图像(1 列,2 列) 2)当 Web 服务器运行 exe(AplicationPoolIdentity)时,我按错误顺序获取图像(2 列,1 列)

可能导致此行为的两个用户(我的用户与 ApplicationPoolIdentity)之间可能有什么区别?

我运行 IIS7.5 Windows 7 64bit extjs 3

0 投票
1 回答
404 浏览

sql-server-2008 - IIS7 应用程序池设置 ApplicationPoolIdentity、NetworkService 或自定义帐户

我继承了一个连接到 2 个 SQL Server(数据存储)和一个 SQLExpress DB(会员登录)的应用程序。它从未成功部署,因此我的任务是部署到 Server 2008 R2 上的 IIS 7.5。

根据我所阅读的内容,我需要在连接到 SQL Server 时使用 ApplicaitonPoolIdentity,在连接到 SQLExpress 时需要使用 NetworkService。由于我需要使用其中一个,我决定使用我的网络帐户作为自定义帐户下的测试。它按预期工作。然而几个小时后,会员登录停止工作。该错误指示我删除 SQLExpress 的用户配置文件中的文件,并建议我将 AppPool 更改为 NetworkService。但是在 NetworkService 上,我无法连接到 SQL Server。我将其保留为自定义帐户,认为这只是侥幸。几个小时后,我被要求再次删除 SQLExpress 用户配置文件中的文件。

我已经验证我的所有连接字符串都是正确的。有没有人见过这样的设置?如果是这样,我将不胜感激有关如何进行设置的任何建议。

谢谢, TJ

0 投票
2 回答
6109 浏览

c# - 以编程方式将 IIS 应用程序池标识“用户”分配给组

问题:当创建新的 IIS 应用程序池并将其设置为使用应用程序池标识获得权限时,我不确定如何将这些标识添加到用户组,例如管理员或性能计数器用户。

背景:我目前正在编写一个 C#.NET 库,它使用 Microsoft.Web.Administration 来执行以下操作:

  • 检测是否安装了 IIS 7.x,如果安装了,是什么组件。
  • 安装或升级 IIS 7.x 到提供的所需组件列表。
  • 通过 IIS 创建/管理一个或多个网站。
  • 每个网站自动创建/管理一个应用程序池

上下文是,可执行安装程序将使用此库在 Windows Server 操作系统上提供 Web 服务器和网站/服务的自动部署,作为更大软件部署的一部分。到目前为止,除了需要在应用程序池/网站创建时执行的一些权限的自动化之外,上述所有内容都已实现、测试并且(大部分)功能正常。

在我安装新网站的方法中,我创建了一个新的应用程序池并强制它使用应用程序池标识:

据我了解,这将是最佳安全实践,然后我将添加对特定网站的权限,以实现最低系统访问权限以外的任何内容。此过程的一部分是将这些应用程序池身份添加到用户组,例如管理员或性能监视器用户。这就是出现并发症的地方。

现在,正如其他地方所记录的那样,每个应用程序池标识都以以下格式存在,IIS AppPool\\<pool_name>但是这个假用户没有通过普通的 GUI 用户管理控件列出,并且似乎无法通过库访问,例如在 SO 上System.DirectoryServices.AccountManagement遵循这个示例时。此外,有关应用程序池标识的其他问题似乎与从子网站中引用它有关,而不是从安装上下文中引用它。

那么,有谁知道正确的方法是什么

  • a) 以编程方式引用和访问应用程序池标识。
  • b) 通过添加用户组来授予应用程序池身份权限。
0 投票
4 回答
3618 浏览

c# - 从 ASP.NET 应用程序池标识运行命令

当用户单击一个按钮时,我正在从我的 ASP.NET 应用程序运行一个可执行进程。这个过程创建了几个文件并将它们提供给最终用户。我无法真正看到该进程在做什么或没有在做什么,但是直到我将管理员用户指定为服务器上的应用程序池身份之后,它才起作用。我正在使用 IIS7。

我假设这通常是一件坏事。您能否让我了解需要做什么才能为普通ApplicationPoolIdentity帐户启用此功能?

谢谢!

0 投票
2 回答
696 浏览

sql-server-2008 - 阻止 iis apppool 用户连接到 sql

使用 sql 2008 和 IIS 7。似乎无论我做什么,IIS 都使用 apppool 连接到 SQL 服务器。我什至完全限定了 web.config 中连接字符串中的用户名和密码。

我怎么关掉这个!?!?

<add connectionString="Data Source=db;Failover Partner=db1;Initial Catalog=Cata;User Id=DOMAIN\Test;Password=111111;Trusted_Connection=Yes;" name="LocalSqlServer" providerName="System.Data.SqlClient" />

但它仍然作为我为该网站 IIS 用户选择的指定帐户连接......这让我很生气。web.config 中是否还有其他内容可以将其关闭?

从下面的评论中,我在 SQLServer 中使用 AD 组进行连接,如果我关闭受信任的连接,SQL 将不会授权用户。