使用 Microsoft.Web.Administration 远程管理 IIS 时身份验证期间出现 COMException

2024-04-19

设想:

我需要远程管理与请求更改的服务器位于同一域的 IIS 服务器(创建和销毁应用程序)。我有一个应用程序池设置为在授权帐户下运行。我已经使用 IIS 管理器和 Web 池成功运行的帐户测试了远程配置,因此我知道权限是正确的。

我通过代码执行此操作时遇到的错误是这样的。

Type=System.Runtime.InteropServices.COMException
Source=mscorlib
Message=Retrieving the COM class factory for remote component with CLSID {2B72133B-3F5B-4602-8952-803546CE3344} from machine <SERVERNAME> failed due to the following error: 800706ba <SERVERNAME>.

如果我查看尝试进行身份验证的远程 IIS 计算机上的事件日志,我会看到以下错误。

Log Name:      Security
Source:        Microsoft-Windows-Security-Auditing
Date:          7/13/2011 5:20:22 PM
Event ID:      4625
Task Category: Logon
Level:         Information
Keywords:      Audit Failure
User:          N/A
Computer:      FQDN.local
Description:
An account failed to log on.

Subject:
    Security ID:        NULL SID
    Account Name:       -
    Account Domain:     -
    Logon ID:       0x0

Logon Type:         3

Account For Which Logon Failed:
    Security ID:        NULL SID
    Account Name:       UserName
    Account Domain:     DOMAIN

Failure Information:
    Failure Reason:     An Error occured during Logon.
    Status:         0xc00002ee
    Sub Status:     0x0

Process Information:
    Caller Process ID:  0x0
    Caller Process Name:    -

Network Information:
    Workstation Name:   -
    Source Network Address: -
    Source Port:        -

Detailed Authentication Information:
    Logon Process:      Kerberos
    Authentication Package: Kerberos
    Transited Services: -
    Package Name (NTLM only):   -
    Key Length:     0

This event is generated when a logon request fails. It is generated on the computer where access was attempted.

The Subject fields indicate the account on the local system which requested the logon. This is most commonly a service such as the Server service, or a local process such as Winlogon.exe or Services.exe.

The Logon Type field indicates the kind of logon that was requested. The most common types are 2 (interactive) and 3 (network).

The Process Information fields indicate which account and process on the system requested the logon.

The Network Information fields indicate where a remote logon request originated. Workstation name is not always available and may be left blank in some cases.

The authentication information fields provide detailed information about this specific logon request.
    - Transited services indicate which intermediate services have participated in this logon request.
    - Package name indicates which sub-protocol was used among the NTLM protocols.
    - Key length indicates the length of the generated session key. This will be 0 if no session key was requested.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" />
    <EventID>4625</EventID>
    <Version>0</Version>
    <Level>0</Level>
    <Task>12544</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8010000000000000</Keywords>
    <TimeCreated SystemTime="2011-07-13T21:20:22.234292500Z" />
    <EventRecordID>12046</EventRecordID>
    <Correlation />
    <Execution ProcessID="556" ThreadID="8984" />
    <Channel>Security</Channel>
    <Computer>FQDN.local</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="SubjectUserSid">S-1-0-0</Data>
    <Data Name="SubjectUserName">-</Data>
    <Data Name="SubjectDomainName">-</Data>
    <Data Name="SubjectLogonId">0x0</Data>
    <Data Name="TargetUserSid">S-1-0-0</Data>
    <Data Name="TargetUserName">UserName</Data>
    <Data Name="TargetDomainName">DOMAIN</Data>
    <Data Name="Status">0xc00002ee</Data>
    <Data Name="FailureReason">%%2304</Data>
    <Data Name="SubStatus">0x0</Data>
    <Data Name="LogonType">3</Data>
    <Data Name="LogonProcessName">Kerberos</Data>
    <Data Name="AuthenticationPackageName">Kerberos</Data>
    <Data Name="WorkstationName">-</Data>
    <Data Name="TransmittedServices">-</Data>
    <Data Name="LmPackageName">-</Data>
    <Data Name="KeyLength">0</Data>
    <Data Name="ProcessId">0x0</Data>
    <Data Name="ProcessName">-</Data>
    <Data Name="IpAddress">-</Data>
    <Data Name="IpPort">-</Data>
  </EventData>
</Event>

我对此进行了大量搜索,但没有找到任何似乎能为我指明正确方向的东西。我确实找到了一些关于森林信任的内容,这可能是问题所在,但我不是广告奇才,这一切都超出了我的想象。我觉得适当的权限已经到位,因为我可以使用 IIS 管理器让它正常工作,只有在使用 Microsoft.Web.Administration 和 ServerManager.OpenRemote() 时才会失败

UPDATE

我确实在两台计算机上禁用了 UAC,并将目标 IIS 计算机中的证书添加到请求计算机上的证书存储中。仍然遇到同样的错误。


听起来很奇怪——只是一些想法:

Update:检查用户是否具有“作为操作系统的一部分”用户权限,请参见。的底部这一页 http://msdn.microsoft.com/en-us/library/ff647404.aspx#paght000023_delegationtable在“Windows Server 2003 注意事项”标题下。

  1. 对我来说,这很可能听起来像是 Kerberos 约束委派的问题。它是从 Windows Server 2003 引入的,旨在限制 Web 服务器通过 Kerberos 访问远程资源(因为,如果 Web 服务器受到损害,情况会变得有点难看)。查看此配置可信任委派的服务器:http://technet.microsoft.com/en-us/library/ee675779.aspx http://technet.microsoft.com/en-us/library/ee675779.aspx.

  2. 另一个想法:您是否验证了您的客户端应用程序正在使用您期望它使用的凭据(也许您已经知道,但不能保证它使用应用程序池身份,特别是如果您有类似的凭据)<identity impersonate="true"/>在你的 web.config 或代码中的模拟 - 请检查类似http://retkomma.wordpress.com/2009/07/28/how-to-debug-http-error-401-unauthorized-in-asp-net-via-iis/ http://retkomma.wordpress.com/2009/07/28/how-to-debug-http-error-401-unauthorized-in-asp-net-via-iis/)?

  3. 最终调试思路:此外,您还可以使用类似工具来更深入地了解 Kerberos 身份验证是否成功WireShark http://www.wireshark.org/- kerberos 有时真的很讨厌......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Microsoft.Web.Administration 远程管理 IIS 时身份验证期间出现 COMException 的相关文章

  • 使用 ContractNamespace 属性设置 WCF DataContract 命名空间

    在设计我的服务时 我决定要自定义出现在生成的 WSDL 中的名称空间 对于数据合同 我遇到了合约命名空间 http msdn microsoft com en us library system runtime serialization
  • SSL/TLS/HTTPS 站点在 C#/.NET WebBrowser 控件中非常慢,但在 Internet Explorer 中则很好

    背景 我正在修改自动维基浏览器 http en wikipedia org wiki Wikipedia AutoWikiBrowser使用托管在安全服务器上的 MediaWiki 站点 我允许用户通过 C 应用程序中的 WebBrowse
  • 从 Delphi 调用 C# dll

    我用单一方法编写了 Net 3 5 dll 由Delphi exe调用 不幸的是它不起作用 步骤 1 使用以下代码创建 C 3 5 dll public class MyDllClass public static int MyDllMet
  • 如何引用解决方案之外的项目?

    我有一个 Visual Studio C 解决方案 其中包含一些项目 其中一个项目需要引用另一个不属于解决方案的项目 一开始我引用了dll
  • 从同步上下文调用异步方法

    我在代码中通过 HTTP 调用服务 最终使用 HttpClient SendAsync 方法 然后从 WebAPI 控制器操作调用此代码 大多数情况下 它工作得很好 测试通过 但是当我在 IIS 上部署时 我遇到了死锁 因为异步方法调用的调
  • 为什么 System.Math 有 Sin、Cos 等外部方法?

    MethodImpl MethodImplOptions InternalCall public static extern double Sin double a 其原因何在 MethodImplOptions InternalCall表
  • 大学软件开发:从 Datatel/Colleague 获取数据

    我在北卡罗来纳州的一所社区大学工作 我们最核心的数据存储库是一个名为 Datatel 的软件系统 又名 Colleague 为什么它有两个名字 我不知道 在我们的例子中 底层数据存储是 IBM Unidata 我使用 net 技术进行开发
  • .NET Core == .NET Framework 5 吗?

    我一直在寻找书籍来研究最新的 NET Framework 据我所知 NET 最高为 4 6 但 ASP NET 最高为 5 核心 NET Core 是 NET 5 的名称还是我们目前仍使用 NET 4 6 去引用斯科特 汉塞尔曼 http
  • C# 要么返回 false 要么什么也不做

    我想知道是否有办法不必重复相同的事情如果施工而是调用一个状态检查 成功后无法返回true 有人知道这个问题更好的标题吗 bool Enable if GetStatus ref status Trace WriteLine Error re
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • idleTimeout 和 ShutdownTimeout 之间的区别

    我正在尝试放宽网站的会话过期策略 以便用户可以指定会话超时间隔 我需要弄清楚应该指定哪些网站相关设置 以免过多限制用户 例如 可能需要 1 天的间隔 我将使用门票来实现这一点 现在 我知道我可以在网站的 web config 文件中指定id
  • 如何在 C# 中向类、方法、属性等添加文档工具提示?

    不确定我的说法是否正确 但我想开始向我的类 方法 属性等添加一些文档 我know这可能是非常明显的 但我从未真正学会过 我不知道从哪里开始 只是为了澄清 每当您滚动某个类 或方法 属性等 时 它都会在 Visual Studio 中显示一个
  • 如何完全禁用签名程序集?

    我有一个包含多个项目的 VS NET 2010 解决方案 我刚刚添加了一个新的库项目 the library assembly 启动项目是一个网站 当我运行该网站时 出现以下错误 无法加载文件或程序集 the library assembl
  • 有没有基于 WPF 的 Markdown 渲染器? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们有基于 WPF 的应用程序 我们有单独的字符串存储库 其中的文本在网络中进行编辑 在我们的 WPF
  • 两个 RichTextBox 具有相同的滚动条

    是否有任何可用的第三方工具有两个富文本框 但两者只有一个共享滚动条 我需要用两种不同的语言实现一些文本 但两个文本框应该同时滚动 public enum ScrollBarType uint SbHorz 0 SbVert 1 SbCtl
  • C# 如何使用 CallNtPowerInformation 和 Interop 来获取 SYSTEM_POWER_INFORMATION

    我正在尝试编写一个小程序 该程序作为服务运行并监视用户是否处于活动状态 如果用户空闲 没有鼠标 键盘 一个小时 则某些进程将被终止 如果用户使用 user32 dll 中的 LASTINPUTINFO 运行它 它就可以工作 但它不能作为服务
  • 为什么在 C# 中使用 String.Concat()?

    我想知道这个问题有一段时间了 为什么使用String Concat 而不是使用 操作员 我明白了String Format因为它是一个空洞使用 运算符并使您的代码看起来更好 例如 string one bob string two jim
  • 从另一个 FORM 中取回隐藏的 FORM

    我有两种形式Form1 and Form2 我正在打开Form2 from Form1 on button Click Form2 obj2 new Form2 this Visible false obj2 Show 然后我想回来Form
  • MSMQ接收和删除

    是否有任何选项可以在读取消息后将其从 MSMQ 中删除 比如 接收 删除可以作为原子操作运行吗 听起来您想查看下一条消息 然后在处理完成后接收它 Message message Queue Peek Queue ReceiveById me
  • MSChart 控件中的自定义 X/Y 网格线

    我有一个带有简单 2D 折线图的 C Windows 窗体 我想向其中添加自定义 X 或 Y 轴标记 并绘制自定义网格线 例如 以突出显示的颜色 虚线 我查看了 customLabels 属性 但这似乎覆盖了我仍然想显示的默认网格 这是为了

随机推荐

  • AngularJS:列出所有表单错误

    背景 我目前正在开发一个带有选项卡的应用程序 我想列出验证失败的字段 部分 以引导用户在右侧选项卡中查找错误 所以我尝试利用form error这样做 但我还没有完全让它发挥作用 如果验证错误发生在ng repeat e g div div
  • PrimeFaces 7.0

    在 PrimeFaces 8 中 似乎可以在使用时启用 禁用 HMTML sanitizer
  • git pre-status 或 post-status hook

    我想运行 lintergit status 不过似乎没有pre status nor post status hook 如何给 git 添加一个 hook The 精美文档 https git scm com book en v2 Cust
  • 微服务之间的通信

    假设您有微服务 A B 和 C 它们当前都通过 HTTP 进行通信 假设服务 A 向服务 B 发送请求 服务 B 得到响应 然后 该响应中返回的数据必须发送到服务 C 进行一些处理 然后最终返回到服务 A 服务 A 现在可以在网页上显示结果
  • 注册用户时 django-registration 中出现 NotImplementedError

    我有一个 django 应用程序并尝试使用django registration应用程序在其中 下面是我的设置和代码 设置 py INSTALLED APPS django contrib auth django contrib conte
  • SQL Server 2008删除特殊模式下的所有表

    您好 我想知道是否可以使用一个 sql 查询或特殊脚本删除在自定义模式 例如 DBO1 下创建的数据库中的所有表 Thanks 这将为您生成所有 DROP TABLE 语句并打印 SQL 语句 然后 您可以在复制和执行之前验证它是否符合您的
  • 我们什么时候应该考虑使用私有的还是受保护的?

    只是想知道 我们什么时候应该真正必须使用private or protected对于模型中的某些方法 有时我不厌其烦地将我的方法分组private nor protected 我就让它保持原样 但我知道这一定是一个不好的做法 否则这两个分组
  • makefile patternrule 在目标文件名中带有更多通配符

    我需要创建一个特殊的 makefile 规则 最好通过一个示例来解释 也许我们用规则创建文件 test pdf tex pdflatex jobname test tex result pdf tex pdflatex jobname re
  • Visual Studio 2010 调试速度慢

    我在使用 Visual Studio 2010 时遇到问题 当我开始调试时 它运行缓慢 Internet Explorer 打开 但网站加载速度极其缓慢 我的同事和我在同一个项目上工作 他没有任何这样的问题 我的硬件是4G内存 Intel
  • Java Collections.sort(nodes) 使用什么排序?

    我认为是MergeSort 即O n log n 但是 以下输出不同意 1 0000000099000391 0000000099000427 1 0000000099000427 0000000099000346 5 0000000099
  • 将 functools.partial 与部分参数一起使用[重复]

    这个问题在这里已经有答案了 尝试部分操作时 我观察到以下行为 首先 我定义了一个函数foo它需要 2 个非关键字参数 gt gt gt def foo salutation name print salutation name 然后 我使用
  • DJango过滤器查询集

    我是 DJango 和 DRF 的新手 并被要求管理一些 DJango DRF 相关代码 经过大量搜索后 我仍然无法找到有关 filter queryset 如何工作以及如何与不同参数一起使用的完整示例 在某些地方我看到它的用法如下 sel
  • 投票数据库架构

    民意调查的最佳数据库架构是什么 一对多关系对此有好处吗 我正在考虑有两张桌子 poll questions int id varchar body datetime created at datetime updated at poll a
  • 使用 python 字符串格式插入制表符

    我正在尝试使用 format 形成一个字符串 但无法弄清楚这一点 lems scaena persona improbus for i in lems print format i t whatever 但拉环并没有像我想象的那样拉紧 实际
  • 如何解决“在 iOS 上使用 expo 播放视频但没有声音”的问题

    我使用世博会的视频组件 我可以播放视频 但在 iOS 中没有声音 在安卓上没问题 我该如何解决它
  • 在运行时停止/启动 WCF MEX 服务

    是否可以 如何在运行时停止和启动自托管 WCF 服务的 HTTP MEX 侦听器而不影响主 WCF 服务 请不要问我为什么要这样做 这是一种绕过别人人为限制的黑客行为 在重新测试和代码清理后重新添加了这个答案 这是我添加到我的基于 WCF
  • R:sample()命令受约束

    我试图从 0 到 7 随机抽取 7 个数字 有替换 但受到所选数字加起来为 7 的约束 例如 输出 0 1 1 2 3 0 0 没问题 但输出1 2 3 4 5 6 7 不是 有没有办法在添加约束的情况下使用示例命令 我打算使用以示例命令作
  • “在预期的位置未找到 FROM 关键字”

    SELECT distinct REPLACE CM NAME as CM NAME TO CHAR Booking Date MM DD YYYY AS Booking Date where Booking Date 03 20 2018
  • Logstash 解析时间戳半天上午/下午

    Logstash 新手 真的很喜欢它 尝试解析包含时间戳的 CSV 文件 想要解析时间戳并将其用作 timestamp字段 我的 CSV 输入示例 input stdin filter filter the input by csv i e
  • 使用 Microsoft.Web.Administration 远程管理 IIS 时身份验证期间出现 COMException

    设想 我需要远程管理与请求更改的服务器位于同一域的 IIS 服务器 创建和销毁应用程序 我有一个应用程序池设置为在授权帐户下运行 我已经使用 IIS 管理器和 Web 池成功运行的帐户测试了远程配置 因此我知道权限是正确的 我通过代码执行此