我正在使用 Visual Studio Web 安装项目来安装扩展 Project Server 功能的应用程序。我想从我的安装项目的自定义操作之一调用 PSI(项目服务器接口)的方法,但每次都会收到“401 未经授权的访问”错误。我应该怎么做才能访问 PSI?从控制台应用程序使用相同的代码时,可以正常工作。

有帮助吗?

解决方案

听起来好像在控制台情况下,您正在使用当前的用户凭据运行,该凭据可以访问 PSI。从 Web 运行时,它使用 IIS 应用程序实例的凭据运行。我认为您要么需要设置委派以将会话凭据传递给 IIS 应用程序,要么为有权访问 PSI 的 IIS 应用程序使用一些静态凭据。

其他提示

我终于找到了答案。您可以调用 LoginWindows PSI 服务,并使用适当的用户、密码和域令牌将凭据设置为 NetworkCredentials。然后,您可以调用任何 PSI 方法,只要凭据是显式的。否则,使用 DefaultCredentials 您将收到未经授权的访问错误,因为 msi 是使用本地系统帐户运行的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top