需要进行哪些设置才能使在 IIS 7.5 下运行的 Classic ASP 应用程序的模拟工作?我的测试服务器 (Windows Server 2008 R2) 上它运行正常,但我有一个用户试图在他们的 R2 服务器上让它工作,我无法弄清楚他们的设置是否错误。
以下是如何在我的测试服务器上设置该应用程序的基本情况:
- 基本身份验证是唯一启用的身份验证方法
- IIS 应用程序在以经典模式运行的 32 位应用程序池下运行
- 应用程序池作为 NetworkService 运行,并且加载用户配置文件设置为 False
当您在我的测试服务器上运行该应用程序时,用户在基本身份验证窗口中输入其凭据,然后该应用程序将调用服务器端对象。我可以从进程监视器中看到该对象在 NetworkService 下运行,但它正在模拟用户的身份。但是,在我们正在处理的另一台服务器上,该对象不会模拟用户。它将在应用程序池配置为运行的任何帐户下运行。
假设服务器按照上述方法设置,什么会导致模拟无法正常工作?我认为 web.config 设置与此无关,因为它是一个经典 ASP 应用程序,而不是 ASP.NET 应用程序。但只是为了好玩,我尝试“破坏”我的测试服务器并将其放入<identity impersonate="false"/>
配置文件中。正如我所料,它没有任何效果,模拟仍然正常工作。
我应该让他们检查哪些设置?他们提到他们已经“锁定”了这台服务器,所以我确信一定是某些设置阻止了它工作。
答案1
我终于找到了答案!出现模拟问题的服务器在 ASP 设置中将“Execute In MTA”属性设置为 True。当我们将其切换回 False(这是 ExecuteInMta 的默认值)时,模拟功能又开始正常工作。
要找到此设置,请单击“默认网站”,然后双击“ASP”。然后展开“服务”组下的“Com Plus 属性”部分。如果其他人遇到此问题,我希望这会有所帮助。