Списки. AddAttachment бросает ошибку ссылки на объект

Я пытаюсь добавить приложение к пункту списка, который я просто создал на sharepoint сервере, используя CAML. Кодекс ниже упрощен (например, путь обычно - переменная, и 2-я область (id изделия, здесь 16847) обычно является id, который я возвращаю из своего заявления вставки в CAML).

Это - мой код:

String desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
String savePath = desktopPath + @"\" + "tutorials.txt";
byte[] data = GetData(savePath);
lists.AddAttachment("Tasks", "16847", "tutorials.txt", data);

Я получаю эту ошибку:

Неспособных обновить безопасность согласно вашим изменениям. Следующее исключение произошло во время ItemUpdating: Ссылка на объект не набор к случаю объекта. Посмотрите Event Viewer для большей информации 0x81020089

getdata - метод, который преобразовывает файл на моем рабочем столе к байту []. данные не пусты, и это смотрит хорошо.

Кроме этого Задачи - необходимый Список, и 16847 id задачи, в котором можно добавить приложение.

Большая часть информации, которую я могу найти, о различной ошибке: индекс из исключения диапазона (как на msdn странице: http://msdn.microsoft.com/en-us/library/lists.lists.addattachment (v=office.12) .aspx).

Я также попробовал помещенный http (несанкционированный доступ, очевидно) и обслуживание копии (я могу опубликовать этот код, если мы не можем найти решение более простого пути выше).

Кто-либо может сказать мне что не так?

ОТРЕДАКТИРУЙТЕ 1:

private dcp.Lists lists = new dcp.Lists(); 
lists.Credentials = System.Net.CredentialCache.DefaultCredentials; 
lists.Url = Values.SERVERADDRESS + "/_vti_bin/lists.asmx"; 

Это инициализирует связь с нашим веб-сервисом. Это работает превосходное на обновления, вставки...

Кодекс GetData:

private byte[] GetData(String savePath)
    {
        byte[] contents;
        using (FileStream fStream = File.OpenRead(savePath))
        {
            contents = new byte[fStream.Length];
            sFileName = fStream.Name;
            fStream.Read(contents, 0, Convert.ToInt32(fStream.Length));
        }
        return contents;
    }

ОТРЕДАКТИРУЙТЕ 2:

Обратите внимание, что следующее действительно работает (я получаю правильный список существующих приложений от задачи):

XmlNode ndAttach = lists.GetAttachmentCollection("Tasks", "16847");

MessageBox.Show(ndAttach.OuterXml);

И следующее не делает (та же самая ошибка что касается метода AddAttachment):

lists.DeleteAttachment("Tasks", "16847", ndAttach.ChildNodes[0].InnerText);

Whereas I'm quite certain this should work since it does exactly the same as the example code on msdn: http://msdn.microsoft.com/en-us/library/lists.lists.deleteattachment(v=office.12).aspx

4
nl ja de
What' s инициализирующий списки ? Что действительно GetData </ код> делают? Исключение дает номер строки?
добавлено автор Jon Skeet, источник
И код от вашего GetData метод? Обратите внимание, что необходимо отредактировать эту информацию в вопрос, вместо того, чтобы добавить его в комментариях.
добавлено автор Jon Skeet, источник
хорошо спасибо, это - мой первый пост здесь
добавлено автор Toon Casteele, источник
Да I' ve проверяется. dcp - наш веб-сервис, который соединяется с Sharepoint. Это работает превосходное на добавление entry' s, обновляя...
добавлено автор Toon Casteele, источник
Отредактированный мой пост, чтобы дать вам больше информации, на где и как ошибка происходит
добавлено автор Toon Casteele, источник
Какой тип - списки? Я только вижу dcp и меня don' t знают, каково это. Кроме того, я предполагаю, что вы уже проверили, но списки и данные оба не пустые?
добавлено автор Meyer Denney, источник

1 ответы

Кодекс выше прекрасен, ошибка произошла на нашем сервере. Добавляя приложение, никакой contenttype не дан в xml. Это было запрограммировано, чтобы бросить ошибку, потому что мы всегда использовали этот метод, чтобы обновить и добавить новые пункты. Таким образом, мы удалили contenttype из основного кода, и это работает как очарование.

2
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot