пятница, мая 23, 2008

Опять сюрприз

И опять от Sharepoint, на этот раз не сильно безобидный smile_baringteeth.

Есть у меня веб-часть, разработанная ещё пол WSS 2003 и переработанная под WSS 2007. Собственно, форма для ввода данных в списки со всякими наворотами типа проверок/валидаторов, вычисляемых полей и т.д. Имеется также режим для работы анонимных юзеров. Всё жило довольно мирно, готовились к передаче заказчику, но после того, как прикрутил в веб-части HIP-систему , начали выскакивать странные ошибки, ранее никогда не встречавшиеся. При внимательном рассмотрении выяснилось, что возникает ошибка в куске кода вроде вот этого

   myData = myList.GetItemById(dataID);



после нескольких (5-6) постбеков с неправильными значениями в полях формы (юзеру выдаётся сообщение и предлагается заполнить поля правильно). При этом и myList != null, и dataID имеет нужное значение, а вылетает ошибка с сообщением о неверном значении dataID smile_angry. Самое противное, что возникает ошибка только на "боевом" сервере у заказчика, на моих тестовых серверах - ни разу не получил, насмотревшись на кошек до мяуканьяsmile_embaressed. Впору тронуться...


Решилось дело (вот уже два дня ошибки не возникает) заменой кода на вот такой

myData = myList.Items.GetItemById(dataID);

Вот, блин... thumbs_down


del.icio.us Tags: ,

воскресенье, мая 18, 2008

Очередной сюрприз от Sharepoint

Потребовалось сохранить информацию для веб-части в библиотечном файле. Сделал текстовый файл с нужной информацией, сохранил в UTF-8, загрузил в библиотеку.

В веб-части информацию считываю примерно таким кодом:

encoding = Encoding.UTF8;
//читаем документ
byte[] chars = file.OpenBinary();
OutStr = encoding.GetString(chars);



В OutStr получаю первый символ - мусорный thumbs_up. Другое дело, что у меня там комбинации вида имя=значение, поэтому удалось выкрутиться за счёт регэкспа. А если б патроны везли?smile_omg