为什么用户必须login模拟才能正常工作?

我的Windows Server 2008服务器托pipe使用模拟的ASP.net应用程序。 只要被模拟的用户仍然login到服务器,应用程序就会工作。 但是,当用户注销时,客户端不能再查看网页。 他们得到一个神秘的错误,而不是。

如何configuration服务器在没有模拟的用户保持login状态下工作? 提前致谢。

我发现问题和解决scheme。

问题:

该webservice使用X509Certificate2证书。 X509Certificate2类构造函数尝试将证书导入应用程序运行的用户帐户的用户configuration文件中。很多时候,ASP.NET和COM +应用程序模拟客户端。 当他们这样做时,出于性能原因,他们不会加载模拟用户的用户configuration文件。 因此,他们无法访问模拟用户的“用户”证书存储区。

从用户帐户下运行的交互式应用程序或Windows服务运行时,相同的代码将工作,因为configuration文件在用户login或服务启动时加载。

解:

  1. 运行ASP.NET / COM +应用程序的计算机上的pipe理员应将证书安装在名为“本地计算机”存储的计算机证书存储区中。 这应该在安装ASP.NET / COM +应用程序时完成。

  2. pipe理员应该在与证书关联的私钥上设置权限,以使ASP.NET进程和模拟用户能够访问该密钥。 这是必需的,因为只有在“本地计算机”存储中安装证书或私钥的用户帐户可以稍后使用与证书关联的RSA私钥。 使用Windows资源工具包工具中提供的WinHttpCertCfg.exe( http://msdn2.microsoft.com/en-us/library/aa384088.aspxhttp://msdn2.microsoft.com/en-us/library/aa384088。 aspx ))来configuration权限。

  3. ASP.NET / COM +应用程序代码应使用安装的证书,而不是尝试从PFX文件安装一个。 让代码使用X509Store类find已安装的证书。

有关更多信息,请参阅http://support.microsoft.com/kb/948154