Но что интересно - версия с private отлично работала на моем компьютере, на сервере разработки и на сервере тестировщиков. И только когда её развернули на серверах стресс-теста, то проблема вылезла. Вывод: очень важно не только синхронизировать базы и код перед тестированием, но и убедиться, что все патчи накатили на все сервера. Либо не накатили, но тоже на все (хоть и безобразие, но однообразие). Но я не знаю простого способа, как этого добиться...
Нашел описание этой проблемы на http://support.microsoft.com/kb/952883/ (правда, они говорят про internal, а не private, но я думаю, что это неважно). Вот что пишут:
You have a computer that has the Microsoft .NET Framework 2.0 Service Pack 2 (SP2) or the .NET Framework 3.5 SP1 installed. You use an ASMX service method that includes a property, and the property has an internal setter. The serialization may fail (здесь и далее курсив мой - Валик).
...
A supported hotfix is now available from Microsoft. However, it is intended to correct only the problem that is described in this article. Apply it only to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.
Т.е. проблема проявляется только на некоторых компьютерах, и не факт, что хотфикс ничего не испортит. Ужас. Этот тот самый тип ошибки, которая страшнее всего для программиста.
Комментариев нет:
Отправить комментарий