从MSI安装程序调用Project Server Interface Web方法

时间:2020-03-05 18:41:42  来源:igfitidea点击:

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

解决方案

回答

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

回答

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