【问题标题】:Control a service on a remote server from IIS从 IIS 控制远程服务器上的服务
【发布时间】:2010-09-24 05:31:37
【问题描述】:

请注意:在下面我描述的每个步骤中,我都以相同的域用户帐户登录。

我有一个控制远程机器上的服务的网络应用程序(通过ServiceController)。当我远程连接到网站并尝试控制服务时,我收到 InvalidOperationException: Access is denied.

我知道它可以工作,因为当我从网络服务器连接到网站时(远程桌面进入,以我的域用户身份登录,然后打开网页),它按预期工作。

我已将 IIS 和 ASP.NET 配置为需要 Windows 身份验证和模拟。当此操作失败时,我会记录当前线程的主体,并且无论我是远程连接还是从服务器本身连接,我都会看到该线程以我的身份运行。

我曾尝试强制 IIS 同时使用 Kerberos 身份验证、NTLM 身份验证以及两者;我的委托人将其 AuthenticationType 报告为“协商”还是“NTLM”都没有关系。当我远程连接(从我的本地计算机)时,它们都不起作用

另一个奇怪的事情是,如果我从本地计算机调试/连接到远程服务器,它每次都能正常工作!但是我没有调试,每次都失败!

这到底是怎么回事?

【问题讨论】:

    标签: asp.net authentication iis-6 invalidoperationexception servicecontroller


    【解决方案1】:

    您的场景是委托而不是模拟。授权很难实现,它取决于许多事情是否正确。

    起点是Kerberos authentication and troubleshooting delegation issues

    David Wang blog 是一个非常有用的资源。

    【讨论】:

      【解决方案2】:

      “另一个奇怪的事情是,如果我从本地机器调试/连接到远程服务器,它每次都能正常工作!但我没有调试,它每次都失败!”

      这清楚地表明您有权限问题。当您在调试器中运行时,您以登录用户的身份运行,当您不调试时,它以任何 IIS 设置使用的方式运行(默认为网络服务)。尝试设置(暂时!)使用您的域帐户作为用户启用匿名访问,看看是否有效。如果是这样,则意味着您的 IIS 没有正确设置来模拟(并且它可能作为 NETWORK SERVICE 运行)。

      IIS 中的权限可能有点ch 以正确微调... 祝你好运!

      P/S:这看起来更像是一个网络管理问题而不是编程问题(请参阅 https://stackoverflow.com/questions/321618/stackoverflow-is-for-programming-questions-here-are-some-better-forums-for-your#321756

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-31
        • 1970-01-01
        • 1970-01-01
        • 2016-12-17
        • 2010-11-12
        • 1970-01-01
        • 2019-06-20
        • 1970-01-01
        相关资源
        最近更新 更多