Mittwoch, 31. März 2010

Sharepoint Items.Count, Count

Folgenden Fehler hatten wir heute bei der Programmierung eines Jobs, welcher vom Sharepoint Timer Dienst ausgelöst wird. Es wurde gegen Sharepoint programmiert, dabei eine Liste ausgelesen. Der Rückgabewert hatte im Debugmodus items = 2 und items.Count = null oder 0. D.h. eigentlich hat er über die Query etwas gefunden, man kann aber nicht iterieren, da nichts angezeigt wird. Folgender Fehler steckt hinter diesem Zustand. PERMISSIONS! In dem obigen Fall hatte der User nicht genügend Berechtigungen und da nützt es nichts den Code mit RunWithElevatedPrivilages laufen zu lassen. In die Liste gehen, dort dem User die nötigen Berechtigungen geben und es läuft. Sharepoint nutzt den System Account wenn mit dem Timer Dienst operiert wird. D.h. man sollte diesem "Nutzer" die korrekten Berechtigungen auf die Liste geben. Normalerweise würde man erwarten, dass man keinen Rückgabewert erhält, wenn Berechtigungen fehlen, aber es scheint, dass es immer einen Rückgabewert gibt, nur einmal ist er nicht aufrufbar.

The following error showed up today, while working on developing a job, that was supposed to be called from the Sharepoint Timer service. We developed against Sharepoint, in reading out a list. The return value of the code in the debug mode was items = 2, items.count = null oder 0. That means that the query worked and it found something, but you could not iterate through the result. Following error was the reason. PERMISSIONS! In our case the user did not have the correct permissions and to RunWithEvelatedPrivilages does not help either. You need to go to the list and give the user the correct permissions. You should be aware that a system account is used to run the Timer service. That means give the user the right permissions on the list. Usually you would expect, that it does not return any value, when you don't have the right permissions, but it seems, there is always a return value. When having not the correct permissions you can't access it.

Keine Kommentare:

Kommentar veröffentlichen