2008-08-21 9 views
1

Ich verwende ein Visual Studio-Webkonfigurationsprojekt, um eine Anwendung zu installieren, die die Funktionalität von Project Server erweitert. Ich möchte eine Methode von der PSI (Project Server Interface) aus einer der benutzerdefinierten Aktionen meines Setup-Projekts aufrufen, aber jedes Mal bekomme ich einen "401 Unauthorized Access" -Fehler. Was muss ich tun, um auf das PSI zugreifen zu können? Der gleiche Code, wenn er von einer Konsolenanwendung verwendet wird, funktioniert ohne Probleme.Rufen Sie die Project Server Interface-Webmethode von einem MSI-Installationsprogramm auf

Antwort

2

Es klingt wie in der Konsolensituation, die Sie mit Ihren aktuellen Benutzeranmeldeinformationen ausführen, die Zugriff auf das PSI haben. Wenn es aus dem Internet ausgeführt wird, wird es mit den Krediten der IIS-Anwendungsinstanz ausgeführt. Ich denke, Sie müssen entweder eine Delegierung einrichten, um die Sitzungsguthaben an die IIS-Anwendung zu übergeben, oder statische Belege für Ihre IIS-Anwendung verwenden, die Zugriff auf das PSI haben.

+0

Ich führe nichts aus dem Web, ich rufe die Methode von einem Installer benutzerdefinierte Aktion, die von innerhalb der MSI ausgeführt wird. – kjv

1

Ich habe endlich die Antwort gefunden. Sie können den LoginWindows PSI-Dienst aufrufen und die Anmeldeinformationen für NetworkCredentials mithilfe der entsprechenden Benutzer-, Kennwort- und Domänen-Tokens festlegen. Dann können Sie eine beliebige PSI-Methode aufrufen, solange die Anmeldeinformationen explizit sind. Andernfalls erhalten Sie mit DefaultCredentials einen Unauthorized Access-Fehler, da eine MSI mit Local System Account ausgeführt wird.