共用方式為


Project 中 ASMX 型程式代碼範例的必要條件

瞭解如何使用包含在 Project Server Interface (PSI) 參考主題中的 ASMX 程式代碼範例,協助您在 Visual Studio 中建立專案。

Project Server 2013 類別庫和 Web 服務參考中包含的許多程式碼範例,原本是針對 Office Project 2007 SDK 所建立,並使用 ASMX Web 服務的標準格式。 這些範例仍可在 Project Server 2013 中運作,並設計為複製到控制台應用程式,並以完整單元執行。 範例中會記下例外狀況。

Project 2013 SDK 中的新 PSI 範例符合使用 Windows Communication Foundation (WCF) 服務的格式。 ASMX 型範例也可以調整為使用 WCF 服務。 本文說明如何搭配 ASMX Web 服務使用範例。 如需搭配 WCF 服務使用範例的相關信息,請參閱 Project 中 WCF 型程式代碼範例的必要條件

注意事項

在 Project Server 2013 中,PSI 的 ASMX Web 服務介面已被取代,但仍受到支援。 如果客戶端物件模型 (CSOM) 包含應用程式所需的方法,則應該使用 CSOM 開發新的應用程式。 CSOM 可讓應用程式使用 project Server 2013 的 Project Online 或內部部署安裝。 否則,如果您的應用程式使用 PSI,它應該使用 WCF 介面,這是我們建議用於網路通訊的技術。 使用 ASMX 介面或 WCF 介面的應用程式只能用於 Project Server 2013 的內部部署安裝。 如需 CSOM 的詳細資訊,請參閱 Project Server 2013 架構客戶端物件模型 (Project 2013 的 CSOM)

執行程式代碼範例之前,您必須先設定開發環境、設定應用程式,以及變更泛型常數值以符合您的環境。

設定開發環境

  1. 設定測試 Project Server 系統

    每當您正在開發或測試時,請使用測試 Project Server 系統。 即使您的程式代碼運作完美,專案間相依性、報告或其他環境因素也可能會造成非預期的後果。

    注意事項

    請確定您是伺服器上的有效使用者,並確認您有足夠的許可權可供應用程式使用的 PSI 呼叫使用。 每個 PSI 方法的參考主題都包含 Project Server 許可權數據表。 例如, Project.QueueCreateProject 方法需要全域 NewProject 權 限和 SaveProjectTemplate 權 限。

    在某些情況下,您可能必須在伺服器上執行遠端偵錯。 您可能也必須設定事件處理程式,方法是在 SharePoint 伺服器數位的每部 Project Server 計算機上安裝事件處理程式元件,然後使用 SharePoint 管理中心 [一般應用程式設定] 中的 [Project Server 設定] 頁面,設定 Project Web App 實例的事件處理程式。

  2. 設定開發電腦。

    您通常會透過網路存取 PSI。 程式代碼範例的設計目的是要在不同於伺服器的用戶端上執行,但註明的位置除外。

    1. 安裝正確的 Visual Studio 版本。 除了註明之外,程式代碼範例是以 Visual C# 撰寫。 它們可以與Visual Studio 2010或Visual Studio 2012搭配使用。 請確定您已安裝最新的 Service Pack。

    2. 將 Project Server DLL 複製到開發電腦。 將下列元件從 [Program Files]\Microsoft Office Servers\15.0\Bin Project Server 電腦複製到開發電腦:

      • Microsoft.Office.Project.Server.Events.Receivers.dll
      • Microsoft.Office.Project.Server.Library.dll
    3. 如需如何針對 PSI 中的 ASMX Web 服務編譯和使用 ProjectServerServices.dll Proxy 元件的詳細資訊,請參閱 使用 PSI Proxy 元件和 IntelliSense 描述

  3. 安裝 IntelliSense 檔案。

    若要針對 Project Server 元件中的類別和成員使用 IntelliSense 描述,請從 Project 2013 SDK 下載將更新的 IntelliSense XML 檔案複製到 Project Server 元件所在的相同目錄。 例如,將 Microsoft.Office.Project.Server.Library.xml 檔複製到您的應用程式將設定 Microsoft.Office.Project.Server.Library.dll 元件參考的目錄。

    PSI Web 服務的 IntelliSense 描述會要求您在 Project 2013 SDK 下載的 子目錄中 Documentation\IntelliSense\WSDL 使用CompileASMXProxyAssembly.cmd腳本來建立 PSI Proxy 元件。 腳本會建立以 ASMX 為基礎的 ProjectServerServices.dll Proxy 元件。 如需詳細資訊,請參閱 SDK 下載中的 [ReadMe_IntelliSense] 檔案。

建立應用程式並新增 Web 服務參考

  1. 建立主控台應用程式

    當您建立主控台應用程式時,請在 [新增專案] 對話方塊的下拉式清單中,選取 [.NET Framework 4]。 您可以將 PSI 範例程式代碼複製到新的應用程式。

  2. 新增 ASMX 所需的參考。

    在 方案總管 中,新增 System.Web.Services 的參考 (請參閱圖 1) 。

    圖 1: Adding a reference in Visual Studio

    在 Visual Studio 中新增參考在

  3. 複製程序代碼

    將完整的程式代碼範例複製到主控台應用程式的Program.cs檔案中。

  4. 設定範例應用程式的命名空間

    您可以將範例頂端所列的命名空間變更為應用程式預設命名空間,或變更預設應用程式命名空間以符合範例。 您可以變更應用程式屬性來變更預設應用程式命名空間。

    例如, QueueRenameProject 的程式代碼範例具有命名空間 Microsoft.SDK.Project.Samples.RenameProject。 如果 Visual Studio 項目的名稱是 RenameProject,請從Program.cs檔案複製命名空間,然後在 [專案]選單上 開啟 [項目屬性] 窗格 (,選擇 [ 重新命名][專案屬性) ] 。 在 [ 應用程式] 索 引標籤上,將命名空間複製到 [ 預設命名空間 ] 文字框中。

  5. 設定 Web 參考

    大部分範例都需要參考一或多個 PSI Web 服務。 這些會列在範例本身或範例前面的批注中。 若要取得正確的 Web 參考命名空間,請確定您先設定預設的應用程式命名空間。

    有三種方式可以新增 PSI 的 ASMX Web 服務參考:

使用 PSI Proxy 元件和 IntelliSense 描述

您可以使用 Project 2013 SDK 下載資料夾中的 CompileASMXProxyAssembly.cmd 腳本 Documentation\IntelliSense\WSDL ,針對 PSI 中所有 ASMX 型 Web 服務建置及使用 ProjectServerServices.dll Proxy 元件。 如需下載的連結,請參閱 Project 2013 開發人員檔

注意事項

當您從 Source.zip 檔擷取 Proxy 來源檔案時,從 Project 2013 SDK 下載的發行日期起,資料夾中的 Documentation\IntelliSense\WSDL\Source 檔案是最新的。 若要產生更新的 PSI Proxy 來源檔案,請在 Project Server 計算機上執行GenASMXProxyAssembly.cmd腳本。 資料夾中的 Documentation\IntelliSense\WCF 文稿不適用於 ASMX 型應用程式。 GenWCFProxyAssembly.cmd腳本會呼叫 SvcUtil.exe,這會產生 WCF 服務的原始碼檔案。 WCF Proxy 檔案包含不同的屬性、通道介面,以及每個 PSI 服務的客戶端類別。 例如,WCF 型資源服務包含 ResourceChannel 介面、 資源 介面和 ResourceClient 類別。 ASMX 型資源 Web 包含具有一些不同屬性的 Resource 類別。

以下是GenASMXProxyAssembly.cmd腳本,它會產生 PSI Web 服務的 WSDL 輸出檔案,然後編譯元件。

@echo off
@ECHO ---------------------------------------------------
@ECHO Creating C# files for the ASMX-based proxy assembly
@ECHO ---------------------------------------------------
REM Replace ServerName with the name of the server and 
REM the instance name of Project Web App. Do not use localhost.
(set VDIR=https://ServerName/pwa/_vti_bin/psi)
(set OUTDIR=.\Source)
REM ** Wsdl.exe is the same version in the v6.0A and v7.0A subdirectories. 
(set WSDL="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\wsdl.exe")
if not exist %OUTDIR% (
md %OUTDIR%
)
for /F %%i in (Classlist_asmx.txt) do %WSDL% /nologo /l:CS /namespace:Svc%%i /out:%OUTDIR%\wsdl.%%i.cs %VDIR%/%%i.asmx?wsdl 
@ECHO ----------------------------
@ECHO Compiling the proxy assembly
@ECHO ----------------------------
(set SOURCE=%OUTDIR%\wsdl)
(set CSC=%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\csc.exe)
(set ASSEMBLY_NAME=ProjectServerServices.dll)
%CSC% /t:library /out:%ASSEMBLY_NAME% %SOURCE%*.cs

腳本會使用 ClassList_asmx.txt 檔案,其中包含可供第三方開發人員使用的 Web 服務清單。

Admin
Archive
Calendar
CubeAdmin
CustomFields
Driver
Events
LoginForms
LoginWindows
LookupTable
Notifications
ObjectLinkProvider
PortfolioAnalyses
Project
QueueSystem
ResourcePlan
Resource
Security
Statusing
TimeSheet
Workflow
WssInterop

腳本會建立名為 ProjectServerServices.dll 的元件。 避免混淆 WCF 型元件的 ProjectServerServices.dll。 元件名稱相同,可讓您使用任一元件搭配 ProjectServerServices.xml IntelliSense 檔案。

ASMX Web 服務和 WCF 服務的腳本所建立的任意命名空間是相同的,因此 ProjectServerServices.xml IntelliSense 檔案可與任一元件搭配運作。 例如,WCF 型 Proxy 元件和 ASMX 型 Proxy 元件中資源服務的命名空間是 SvcResource。 當然,您可以變更命名空間名稱—如果您確定它們在 Proxy 元件和 ProjectServerServices.xml IntelliSense 檔案中相符。

如果程式代碼範例針對 PSI Web 服務命名空間使用不同的名稱,例如 ProjectWebSvc,若要讓 IntelliSense 能夠運作,您必須將範例變更為使用 SvcProject ,使命名空間符合 Proxy 元件。

使用 ASMX 型 Proxy 元件的優點是它包含所有 PSI Web 服務命名空間;您不需要建立多個 Web 參考。 另一個優點是,如果您將 ProjectServerServices.xml 檔案新增至設定 ProjectServerServices.dll Proxy 元件參考的相同目錄,您可以取得 PSI 類別和成員的 IntelliSense 描述。 圖 2 顯示 Project.QueueCreateProject 方法的 IntelliSense 文字。 如需詳細資訊,請參閱 Project 2013 SDK 下載之 IntelliSense 資料夾中的 [ReadMe_IntelliSense] 檔案。

圖 2: 在 Project Web 服務中使用 IntelliSense 作為方法

在 PSI 服務中使用 Intellisense 為 PSI 服務中的方法

使用 Proxy 元件的缺點是解決方案較大,而且您必須使用解決方案來散發和安裝 Proxy 元件。 您也必須使用 Proxy 元件和 IntelliSense 檔案中的相同命名空間,除非您變更腳本並 ProjectServerServices.xml IntelliSense 檔案以使用不同的命名空間。

新增 PSI Proxy 檔案

Project 2013 SDK 下載包含 proxy 元件的 Wsdl.exe 命令所產生的來源檔案。 來源檔案位於子目錄的 Source.zip Documentation\IntelliSense\ASMX 中。 您可以將一或多個原始程序檔新增至 Visual Studio 方案,而不是設定 Proxy 元件的參考。 例如,執行GenASMXProxyAssembly.cmd腳本之後,請新增 wsdl。將檔案Project.cs至方案。 您可以執行下列命令來產生單一原始程式檔,而不是執行文稿,例如:

set VDIR=https://ServerName/ProjectServerName/_vti_bin/psi
set WSDL="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\wsdl.exe"
%WSDL% /nologo /l:cs /namespace:SvcProject /out:wsdl.Project.cs %VDIR%/Project.asmx?wsdl

若要將 Project 物件定義為名為 project 的類別變數,請使用下列程式代碼。 AddContextInfo 方法會將內容資訊新增至項目物件,以進行 Windows 驗證 和窗體型驗證。

private static SvcProject.Project project;
private static SvcLoginForms.LoginForms loginForms =
            new SvcLoginForms.LoginForms();
. . .
public void AddContextInfo()
{
    // Add the Url property.
    project.Url = "https://ServerName /ProjectServerName /_vti_bin/psi/project.asmx";
    // Add Windows credentials.
    project.Credentials = CredentialCache.DefaultCredentials;
    // If Forms authentication is used, add the Project Server cookie.
    project.CookieContainer = loginForms.CookieContainer;
}

注意事項

不論您是使用 PSI Proxy 元件或為名為 SvcProject 的 Project 服務參考新增 Proxy 檔案,您都會使用相同的程式代碼來建立 項目 物件。

新增 Web 服務參考

如果您未使用 ASMX 型 Proxy 元件或新增 WSDL 輸出檔案,您可以設定一或多個個別的 Web 參考。 下列步驟示範如何使用 Visual Studio 2012 設定 Web 參考。

  1. 方案總管 中,以滑鼠右鍵按兩下 [參考] 資料夾,然後選擇 [新增服務參考]

  2. 在 [ 新增服務參考 ] 對話框中,選擇 [ 進階]

  3. 在 [ 服務參考設定 ] 對話框中,選擇 [ 新增 Web 參考]

  4. 在 [ URL] 文字框中,輸入 https:// _ServerName_/ _ProjectServerName_/_vti_bin/psi/ _ServiceName_.asmx?wsdl,然後按 Enter 或選擇 Go 圖示。 如果您已安裝安全套接字層 (SSL) ,則應該使用 HTTPS 通訊協定,而不是 HTTP 通訊協定。

    例如,針對站臺上的 https://MyServer/pwa Project 服務,使用下列 URL 進行 Project Web App:https://MyServer/pwa/_vti_bin/psi/project.asmx?wsdl

    或者,開啟網頁瀏覽器,並流覽至 https://ServerName/ProjectServerName/_vti_bin/psi/ServiceName.asmx?wsdl。 將檔案儲存至本機目錄,例如 C:\Project\WebServices\ServiceName.wsdl。 在 [ 新增 Web 參考 ] 對話框中,針對 [URL] 輸入檔案通訊協議和檔案的路徑。 例如,輸入 file://C:\Project\WebServices\Project.wsdl

  5. 解析參考之後,請在 [Web 參考名稱 ] 文字框中輸入參考名稱。 Project 2013 開發人員檔中的程式代碼範例會使用任意標準參考名稱 Svc ServiceName。 例如,Project Web 服務的名稱為 SvcProject (請參閱圖 3) 。

    圖 3: Adding an ASMX web service reference

    新增 ASMX Web 服務參考

對於必須在 Project Server 計算機上執行、使用模擬或具有更高許可權的應用程式元件,請使用 WCF 服務參考,而不是 ASMX Web 參考。 如需詳細資訊,請參閱 Project 中 WCF 型程式代碼範例的必要條件

設定其他參考

Project Server 應用程式通常會使用其他服務,例如 SharePoint Server 2013 Web 服務。 如果需要其他服務,則會在範例中記下它們。

程式代碼範例的本機參考會列在範例頂端的 using 語句中:

  1. 方案總管 中,以滑鼠右鍵按兩下 [參考] 資料夾,然後選擇 [新增參考]

  2. 選擇 [瀏覽],然後流覽至您儲存先前複製之 Project Server DLL 的位置。 選擇您需要的 DLL,然後選擇 [ 確定]

注意事項

請確定開發電腦上的元件版本完全符合目標 Project Server 電腦上的元件版本。

使用多個驗證

內部部署 Project Server 使用者的驗證,無論是透過 Windows 驗證 或窗體驗證,都是透過 SharePoint Server 2013 中的宣告處理來完成。 多重驗證表示布建 Project Web App 的 Web 應用程式支援 Windows 驗證 和表單型驗證。 如果是這種情況,使用 Windows 驗證 的 ASMX Web 服務呼叫將會失敗,並出現下列錯誤,因為宣告程式無法判斷要驗證的使用者類型:

The server was unable to process the request due to an internal error. . . .

若要修正 ASMX 的問題,所有對 PSI 方法的呼叫都應該是針對每個 PSI Web 服務定義的衍生類別。 衍生類別也必須使用 SvcLoginWindows.LoginWindows 類別來取得衍生 PSI 服務類別的 Cookie。 在下列範例中, ProjectDerived 類別衍生自 SvcProject.Project 類別。 衍生類別會新增 EnforceWindowsAuth 屬性,並覆寫每次呼叫 Project 類別中方法的 Web 要求標頭。 如果 EnforceWindowsAuth 屬性為 true,GetWebRequest 方法會新增停用 Forms 驗證的標頭。 如果 EnforceWindowsAuthfalse,則可以繼續進行窗體驗證。

若要使用下列 ASMXLogon_MultiAuth 範例,請建立主控台應用程式、遵循 建立應用程式和新增Web服務參考中的步驟,然後新增 wsdl。LoginWindows.cs Proxy 檔案和 wsdl。Project.cs Proxy 檔案。 Main 方法會建立 ProjectDerived 類別的項目實例。 此範例必須使用衍生的LoginWindowsDerived類別來取得專案的CookieContainer物件。CookieContainer 屬性,可區分窗體驗證與 Windows 驗證。 項目物件接著可用來呼叫 SvcProject.Project 類別中的任何方法。

注意事項

只有在多個驗證環境中的 ASMX 應用程式才需要 LoginWindows 服務。 在 ASMXLogon_MultiAuth 範例中, GetLogonCookie 方法會取得 loginWindows 物件的Cookie。 專案。CookieContainer 屬性設定為 loginWindows.CookieContainer 值。

using System;
using System.Net;
using PSLibrary = Microsoft.Office.Project.Server.Library;
namespace ASMXLogon_MultiAuth
{
    class Program
    {
        private const string PROJECT_SERVER_URL = 
            "https://ServerName/ProjectServerName/_vti_bin/psi/";
        static void Main(string[] args)
        {
            bool isWindowsUser = true;
            // Create an instance of the project object.
            ProjectDerived project = new ProjectDerived();
            project.Url = PROJECT_SERVER_URL + "Project.asmx";
            project.Credentials = CredentialCache.DefaultCredentials;
            try
            {
                // The program works on a Windows-auth-only computer if you comment-out the
                // following line. The line is required for multiple authentication.
                project.CookieContainer = GetLogonCookie();
                project.EnforceWindowsAuth = isWindowsUser;
                // Get a list of all published projects. 
                // Use ReadProjectStatus instead of ReadProjectList,
                // because the permission requirements are lower.
                SvcProject.ProjectDataSet projectDs =
                    project.ReadProjectStatus(Guid.Empty,
                        SvcProject.DataStoreEnum.PublishedStore,
                        string.Empty,
                        (int)PSLibrary.Project.ProjectType.Project);
                Console.WriteLine(string.Format(
                    "There are {0} published projects.", 
                    projectDs.Project.Rows.Count));
            }
            catch (UnauthorizedAccessException ex)
            {
                Console.WriteLine(ex.Message);
            }
            catch (WebException ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Console.Write("Press any key to continue...");
                Console.ReadKey(false);
            }
        }
        private static CookieContainer GetLogonCookie()
        {
            // Create an instance of the loginWindows object.
            LoginWindowsDerived loginWindows = new LoginWindowsDerived();
            loginWindows.EnforceWindowsAuth = true;
            loginWindows.Url = PROJECT_SERVER_URL + "LoginWindows.asmx";
            loginWindows.Credentials = CredentialCache.DefaultCredentials;
            loginWindows.CookieContainer = new CookieContainer();
            if (!loginWindows.Login())
            {
                // Login failed; throw an exception.
                throw new UnauthorizedAccessException("Login failed.");
            }
            return loginWindows.CookieContainer;
        }
    }
    // Derive from LoginWindows class; include additional property and 
    // override the web request header.
    class LoginWindowsDerived : SvcLoginWindows.LoginWindows
    {
        public bool EnforceWindowsAuth { get; set; }
        protected override WebRequest GetWebRequest(Uri uri)
        {
            WebRequest request = base.GetWebRequest(uri);
            if (this.EnforceWindowsAuth)
            {
                request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");
            }
            return request;
        }
    }
    // Derive from Project class; include additional property and 
    // override the web request header.
    class ProjectDerived : SvcProject.Project
    {
        public bool EnforceWindowsAuth { get; set; }
        protected override WebRequest GetWebRequest(Uri uri)
        {
            WebRequest request = base.GetWebRequest(uri);
            if (this.EnforceWindowsAuth)
            {
                request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");
            }
            return request;
        }
    }
}

在多個驗證環境中執行的應用程式需要使用衍生的 LoginWindows 類別,以及使用停用窗體驗證的 Web 要求標頭進行 PSI 呼叫。 如果 Project Server 只使用宣告驗證,則不需要衍生可新增 Web 要求標頭的類別。 上述範例會在這兩個環境中執行。

WCF 型應用程式的修正方式不同。 For more information, see the Using multiple authentication section in Prerequisites for WCF-based code samples in Project.

變更泛型常數的值

大部分的範例都有一或多個變數,您必須更新這些變數,範例才能在您的環境中正常運作。 在下列範例中,如果您已安裝 SSL,請使用 HTTPS 通訊協定,而不是 HTTP 通訊協定。 以您使用的伺服器名稱取代 ServerName 。 將 ProjectServerName 取代為 Project Server 網站的虛擬目錄名稱,例如 PWA。

const string PROJECT_SERVER_URI = "https://ServerName/ProjectServerName/";

程式代碼範例頂端會記下您必須變更的任何其他變數或其他必要條件。

驗證結果

從程式代碼範例取得和解譯結果不一定很簡單。 例如,如果您建立專案,則必須先發佈專案,才能出現在 Project Web App 中的 [專案中心] 頁面上。

您可以透過數種方式來驗證程式碼範例結果,例如:

  • 使用 Project 專業版 2013 用戶端從 Project Server 計算機開啟專案,並檢視您想要的專案。

  • 在 Project Web App () 的 https://ServerName/ProjectServerName/projects.aspx [專案中心] 頁面上檢視已發佈的專案。

  • 檢視 Project Web App 中的佇列記錄。 開啟 [伺服器設定] 頁面 (選擇右上角) 的 [設定] 圖示,然後選擇 [個人設定] 區段底下的 [我已排入佇列的作業] 區段 ( https://ServerName/ProjectServerName/MyJobs.aspx) 。 在 [ 檢視] 下拉式清單中,您可以依作業狀態排序。 默認狀態為 [進行中] 和 [過去一周失敗的作業]

  • 使用 Project Web App () https://ServerName/ProjectServerName/_layouts/15/pwa/admin/admin.aspx 中的 [伺服器設定] 頁面來管理所有佇列作業,以及刪除或強制簽入企業物件。 您必須具有系統管理許可權,才能在 [伺服器設定] 頁面上存取這些連結。

  • 使用 Microsoft SQL Server Management Studio 在 Project 資料庫中的數據表上執行查詢。 例如,使用下列查詢來選取發行前 200 個數據列。MSP_WORKFLOW_STAGE_PDPS表顯示工作流程階段 (PDP) 項目詳細數據頁面的相關信息。

      SELECT TOP 200 [STAGE_UID]
              ,[PDP_UID]
              ,[PDP_NAME]
              ,[PDP_POSITION]
              ,[PDP_ID]
              ,[PDP_STAGE_DESCRIPTION]
              ,[PDP_REQUIRES_ATTENTION]
          FROM [ProjectService].[pub].[MSP_WORKFLOW_STAGE_PDPS]
    

清除

測試一些程式代碼範例之後,應該刪除或重設企業對象和設定。 您可以使用 Project Web App 中的 [伺服器設定] 頁面來管理企業數據 ( https://ServerName/ProjectServerName/_layouts/15/pwa/admin/admin.aspx) 。 [伺服器設定] 頁面上的連結可讓您刪除舊專案、強制簽入專案、管理所有使用者的作業佇列,以及執行其他系統管理工作。

以下是 [伺服器設定] 頁面上的一些連結,您可以在執行程式碼範例之後用於一般清除活動:

  • 企業自訂欄位與查閱表格

  • 管理佇列工作

  • 刪除企業物件

  • 強制存回企業物件

  • 企業項目類型

  • 工作流程階段

  • 工作流程階段

  • 專案詳細數據頁面

  • 時程表期間

  • 時程表設定及預設值

  • 線條分類

其他設定是由 SharePoint Server 2013 針對每個 Project Web App 實例管理,而不是由特定 Project Web App 伺服器設定頁面管理。 在 SharePoint 管理中心應用程式中,選擇 [一般應用程式設定],選擇 [Project Server 設定] 底下的 [管理],然後在 [伺服器設定] 頁面的下拉式清單中選擇 [Project Web App 實例]。 例如,選擇 [伺服器端事件處理程式] 來新增或刪除所選取 Project Web App 實例的事件處理程式。

另請參閱