1

请注意:在下面描述的每个步骤中,我都以相同的域用户帐户登录。从IIS控制远程服务器上的服务

我有一个web应用程序来控制远程机器上的服务(通过ServiceController)。当我远程连接到网站并尝试控制服务时,出现InvalidOperationException:访问被拒绝。

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

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

我试过迫使IIS在同一时间使用Kerberos身份验证,NTLM身份验证和两者;无论我的主体是否将其AuthenticationType声明为“Negotiate”或“NTLM”,都无关紧要。没有人当我远程连接(从我的本地机器)工作

这个ANOTHER奇怪的是,如果我调试从我的本地机器/连接到远程服务器,它屡试不爽!但我没有调试,每次都失败!

在这里可能会发生什么?

回答

0

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

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

在IIS中的权限可以有点c h适当微调... 祝你好运!

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

+0

嗯,我知道它的许可问题。我按你的建议做了,但没有什么区别。我也尝试了摘要式身份验证,但那是不行的。 – Will 2008-11-26 20:21:32