пятница, мая 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: ,

2 комментария:

Nicolay комментирует...

Это моё предположение, из опыта - подобные ошибки (возникновение ошибок на публичном сервере) возникает часто из за в тех случаях - когда программист пишет кастомный класс, который может совпадать с названием какого-нить дефолтного класса - поэтому нужно либо обращаться явно указывая namespace либо переименовывать(

DkmS комментирует...

C одной стороны, не совпадает:
namespace DkmS.Sharepoint {
public partial class Card : Microsoft.SharePoint.WebPartPages.WebPart
}
}
C другой, совпадало бы и на тестовых серверах...