Fehler in meinem benutzerdefinierten WebPart: Der versuchte Betrieb ist verboten, da die vom Administrator durchgesetzte Liste der Listenansicht überschreitet

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/105553

  •  29-09-2020
  •  | 
  •  

Frage

Ich verwende SharePoint 2010. Ich habe ein benutzerdefiniertes WebPart erstellt.In diesem WebPart ist es möglich, ein neues Element hinzuzufügen.Bevor ich diesen neuen Artikel hinzufüge, muss ich einige Werte aus Dropdown-Boxen auswählen.Im Ereignis-Empfänger der letzten DropdownBox tue ich dies im Code:

generasacodicetagpre.

Wenn ich zur Liste "apparaat" gehe, sehe ich dort 5002 Artikel.Wenn ich die Einstellungen der Liste aufhielt, sehe ich diese Info:

5002-Artikel (Die Thenbold für diese Listenansicht ist 5000).

Wenn ich die Liste hat "apparaat", ist alles in Ordnung.Ich versuche, 2 Artikel hinzuzufügen und funktioniert in Ordnung.

Warum mein benutzerdefinierter WebPart mir die Thenbold-Grenze-Excetpion gibt und die GUI funktioniert gut?

War es hilfreich?

Lösung

Ich habe die Lösung von mir gefunden.Ich habe einen Whileloop erstellt.Es loops in dieser While-Schleife, bis die Zählung der Gesamtstücke erreicht ist.Innerhalb der Schleife nehme ich die ersten Artikel von 1999 und fügen Sie es einer Liste hinzu.Danach nehme ich die zweiten 1999 Artikel.Es wird diese Logik erledigen, bis Sie die Gesamtanzahl der Artikel erreicht haben.Danach haben Sie eine Liste mit allen Elementen und können sie dem Repeater hinzufügen.Der Grund, warum ich 1999 Artikel genutzt habe, ist, weil es möglich ist, dass die Drossel ab 5000 bis 2000 abnehmen kann. Der benutzerdefinierte Code funktioniert dann auch.

Andere Tipps

In der Reload-Funktion, wenn Sie Tolist () aufrufen, zwingt es den Datenkontext, um die Abfrage auszugeben.An diesem Punkt in Ihrem Code haben Sie keine Filter angegeben (wobei Klausel), sodass alle Datensätze gelesen werden.(Nun, versuchte, gelesen zu werden.)

Die Eigenschaft von DataSource kann eine iQueryable-Quelle akzeptieren, also entfernen Sie einfach die Tolist-Anrufe (ändern Sie auch das Reloadfunctions-Verfahren), und Sie sollten in Ordnung sein.

linq auf SharePoint-Abfragen verfügen über eine Standard-Zeilengrenze von maximal in int, was 2147483647 ist und anscheinend nicht geändert werden kann.Ihre Anfrage gibt wahrscheinlich mehr als 5000 Artikel zurück und überschreitet die Schwellenwerte.

Um sicherzustellen, dass Sie den Schwellenwert nicht überschreiten, müssen Sie das sprätisierte Objekt verwenden und Ihre Anfrage in CAML schreiben und die Rowlimit-Eigenschaft auf 5000 einstellen. Sie benötigen so etwas.Ändern Sie die CAML-Abfrage.

generasacodicetagpre.

Dies erklärt, was los ist:

Der versuchte Betrieb ist verboten, da er die Listenansicht überschreitet Schwellenwert, der vom Administrator erzwungen wird

Es ist vom Administrator auf einer Liste von der zentralen Verwaltung in der Webanwendung festgelegt!

Kannst du Central Admin -> Anwendungsmanagement -> verwalten Webanwendungen -> auswählen die < Starke> Webanwendung , die die angegebene Liste enthält -> Innerhalb der Registerkarte oben klicken Sie auf den Dropdown auf für allgemeine Einstellungen -> Wählen Sie Ressourcendrossel < / stark>.

Hiermit können Sie ein Popup-Feld mit den vom Administrator festgelegten WebApplication-Einstellungen geben. Wenn Sie nach unten scrollen, sehen Sie Listenansicht Lookup-Schwelle , standardmäßig denke ich, dass es auf 5000 eingestellt ist, Sie können diese Zahl auf etwas Reißgrater erhöhen.

Ich begegne dieses Problem, wenn ich Workflows auf der Liste leiten kann, erzeugt er denselben Fehler, aber dies ist auf die Listenansicht-Lookup-Schwelle , die standardmäßig auf 8 eingestellt ist, können Sie diese Nummer erhöhen zu 100 und ich bin fast bestätigt, dass es funktioniert.

Ich verstehe, dass einige Leute sagen, dass die Rücksendung aller Daten falsch ist, ja, das trifft etwas Effekt zu ... was ist, wenn Sie alles brauchen? Was ist, wenn Sie über 1 Million Datensätze verfügen? Ich weiß, dass es andere Lösungen gibt, aber dies ist eins und ist leicht, innerhalb der zentralen Admin-Einstellungen zu korrigieren, und wenn Ihr Server die Belastung umgehen kann, ist dies eine einfache Option.

Gibt die maximale Anzahl der Liste oder Bibliotheksartikel an, die eine Datenbank Die Bedienung, z. B. eine Abfrage, kann sich gleichzeitig verarbeiten. Operationen das Überschreiten Sie dieses Limit.

Um Ihnen Zeit zu geben, alternative Pläne zu erstellen, warnt SharePoint 2010 Sie Auf der Seite Listeneinstellungen, wenn Ihre Liste 3.000 Artikel überschritten hat. Das Warnung enthält einen Hilfeslink zu diesem Thema.

http://office2010.microsoft.com/de-us/sharepoint-server-help/manage-lists-und-libraries-with-many-iTems-ha010378155.aspx?redir=0

Dies ist ein erwartetes Verhalten - SharePoint hat eine Funktion namens 'Query Drosseln', die darauf ausgelegt ist, ineffiziente Listenabfragen zu verhindern, dass die Leistung für Benutzer nachteilig beeinträchtigt wird.

Dieses Limit ist auf 5000 eingestellt, und dies sollte wahrscheinlich nicht geändert werden. Der Grund, warum er auf 5000 eingestellt ist, ist, dass die zugrunde liegende SQL-Datenbank mit mehr als 5000 Elementen von der Zeilenreassing bis zur Tischverriegelung eskaliert. Da SharePoint einen Großteil des Inhalts in einem Tisch in der Inhaltsdatenbank speichert, kann dies einen erheblichen Einfluss auf die Leistung Ihres Systems haben, und dies kann sich auf viele Standortsammlungen auswirken.

Nun gibt es einige Möglichkeiten, die Abfragedrossel zu mildern. Erstens können Sie Spaltenindizes in Ihrer Liste verwenden. So wie das Abfragen einer nicht komplexen SQL-Tabellenspalte einen Tabellen-Scan zwingt, dauert das Abfragen einer nicht komplexen Listenspalte dasselbe. Wenn diese Liste mehr als 5000 Artikel enthält, haben Sie die Drosselklappe. Eine indizierte Spalte bedeutet jedoch, dass Sie einfach die benötigten Zeilen abrufen können.

Wenn Sie mit jedem Element in einer großen Liste anschalben müssen, gibt es auch die Contentiterator-Steuerung - dies ist jedoch langsam, da er mehrere Abfragen verwendet, um die relevanten Elemente entweder jeweils einzeln oder in Chargen zu erhalten.

Elemente Abrufen von Einzelteilen:

generasacodicetagpre.

Abrufen von Elementen in Chargen:

generasacodicetagpre.

Dies könnte helfen: http://www.novolocus.com/2012/07/09/dealing-with-Large-lists-part-Wer-With-Large-Listling-und-und-Wie -Er-urset-schwierigkeit /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top