Freigeben über


Gewusst wie: Bereitstellen von SharePoint Foundation-RPC-Methoden

Letzte Änderung: Dienstag, 23. März 2010

Gilt für: SharePoint Foundation 2010

Sie können das URL-Protokoll zusammen mit Collaborative Application Markup Language (CAML) und dem SharePoint Foundation-RPC-Protokoll (Remote Procedure Call, Remoteprozeduraufruf) verwenden, um Anforderungen auf einem Front-End-Webserver bereitzustellen, auf dem Microsoft SharePoint Foundation 2010 ausgeführt wird. Verwenden Sie das CAML-Method-Element, um eine einzelne Anforderung bereitzustellen, oder ein Batch-Element, das mehrere Method-Elemente enthält, um mehrere Elemente zu bereitzustellen. Verwenden Sie hierzu den Post-Text eines Formulars auf einer ASPX-Seite. In der folgenden Programmieraufgabe wird das Erstellen eines Formulars zum Bereitstellen von Anforderungen veranschaulicht.

So erstellen Sie ein Formular zum Bereitstellen von Anforderungen

  1. Erstellen Sie eine ASPX-Seite, und fügen Sie eine Seitendirektive wie die folgende hinzu, die den Microsoft.SharePoint.WebControls-Namespace für das Serversteuerelement registriert.

    <%@ Register Tagprefix="SharePoint" 
      Namespace="Microsoft.SharePoint.WebControls" 
      Assembly="Microsoft.SharePoint, Version=11.0.0.0, 
      Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    
    HinweisHinweis

    Sie können in Windows Explorer den PublicKeyToken-Wert für die aktuelle SharePoint Foundation 2010-Bereitstellung aus der Datei default.aspx unter dem Pfad Lokales_Laufwerk:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\SiteTemplates\sts oder aus Informationen, die unter Lokales_Laufwerk:\%WINDOWS%\assembly für die Microsoft.SharePoint-Assembly bereitgestellt sind, abrufen.

  2. Fügen Sie den folgenden Skriptblock hinzu, damit das FormDigest-Steuerelement automatisch in jedes Method-Element ein eingefügt wird, wenn das Formular gesendet wird.

    <script type="text/javascript" language="JavaScript">
    function InsertSecurityValidation(oForm)
    {
        var sFormDigest = '<SetVar Name="__REQUESTDIGEST">' + 
          oForm.elements["__REQUESTDIGEST"].value + "</SetVar>\n";
        var oPostBody = oForm.elements["PostBody"];
        var rePattern = /<\/Method>/g;
        oPostBody.value = oPostBody.value.replace(rePattern, 
            sFormDigest + "</Method>");
    }
    </script>
    
  3. Erstellen Sie auf der ASPX-Seite ein Formular wie das folgende, wobei das action-Attribut den auf dem Server bereitgestellten URL-Befehl enthält.

    <form method="post" 
      action="http://Server_Name/sites/Site_Name/_vti_bin/owssvr.dll" 
      onsubmit="InsertSecurityValidation(this);">
      <SharePoint:FormDigest runat="server" />
      <input type="hidden" name="Cmd" value="DisplayPost" />
      <textarea rows="18" name="PostBody" cols="72"></textarea>
      <input type="submit" value="Submit" />
      <input type="reset" value="Reset" />
    </form>
    

    Das Formular fordert mit der DisplayPost-Methode an, dass der Server jegliches im Post-Text enthaltene CAML rendert.

  4. Öffnen Sie das Formular im Browser, und fügen Sie in den Post-Text einen Codeblock wie den folgenden ein. In diesem wird das Batch-Element zum Bereitstellen mehrerer RPC-Methoden verwendet, um einer Ankündigungsliste zwei Ankündigungen hinzuzufügen:

    <ows:Batch Version="6.0.2.5608" OnError="Return">
      <Method ID="A1">
        <SetList>List_GUID</SetList>
        <SetVar Name="ID">New</SetVar>
        <SetVar Name="Cmd">Save</SetVar>
        <SetVar Name="urn:schemas-microsoft-com:office:office#Title">
            New Program Manager</SetVar>
        <SetVar Name="urn:schemas-microsoft-com:office:office#Body">
            Congratulations to Jane for her promotion!</SetVar>
        <SetVar Name="urn:schemas-microsoft-com:office:office#Expires">
            2001-09-14T00:00:00Z</SetVar>
      </Method>
      <Method ID="A2">
        <SetList>List_GUID</SetList>
        <SetVar Name="ID">New</SetVar>
        <SetVar Name="Cmd">Save</SetVar>
        <SetVar Name="urn:schemas-microsoft-com:office:office#Title">
            Sales rise by 10%</SetVar>
        <SetVar Name="urn:schemas-microsoft-com:office:office#Body">The
            accounting department has released its quarterly report. 
            Check it out!</SetVar>
        <SetVar Name="urn:schemas-microsoft-com:office:office#Expires">
            2001-12-18T00:00:00Z</SetVar>
      </Method>
    </ows:Batch>
    

Code wird kompiliert

Das Batch-Element muss ein Version-Attribut enthalten, das die auf dem Server ausgeführte Version von SharePoint Foundation angibt. Jeder SetList-Knoten muss die GUID der Liste angeben.

In diesem Beispiel werden einer Ankündigungsliste zwei Datensätze hinzugefügt, wenn das Formular gesendet wird.

Sicherheit

Wenn auf dem Server die Sicherheitsüberprüfung aktiviert ist (in SharePoint Foundation standardmäßig true), muss im Formular ein FormDigest-Steuerelement hinzugefügt werden. Informationen zu diesem Steuerelement und zur Sicherheitsüberprüfung finden Sie unter Sicherheitsüberprüfung und POSTs zum Aktualisieren von Daten. Für jedes in einer Bereitstellung verwendete Method-Element muss ein Formulardigest angegeben sein. Andernfalls besteht die Bereitstellung die Sicherheitsüberprüfung nicht. .