metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2008-11-29 11:48 pm

За что я не люблю .NET

так это за излишнюю интеллектуальность.

Счас воевал несколько часов с багом в софте, использующем ремотинг.

Оказывается, объекты опубликованные для ремотинга имеют конечное время жизни, и это надо ручками переопределять, потому что если объект не дергают около 10 минут - он сдыхает, и при следующем обращении выдает ошибку "Requested service not found". Поиск по этой ошибке ничего не дает, и понять ее причины просто так не получается.

Я уже даже сниффером обмен между клиентом и сервисом посмотрел, удостоверился, что ошибка в сервисе, windbg с загруженным clr-расширеним(C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\SOS.dll) ошибку перехватил, посмотрел стек вызовов и рефлектором внутренности места, где ошибка возникает, изучать начал.
И потом только до меня дошло, что 10 минутный таймаут - это явно где-то сборка мусора покопалась, а потом уже и слова LifetimeService и ILease вспомнились, по которым причина и метод исправления ошибки в гугле находится за пару минут.

[identity profile] black-angel-by.livejournal.com 2008-11-30 12:42 pm (UTC)(link)
А я его просто нинавижу :) Просто за то, что он есть :)

[identity profile] slonopotamus.livejournal.com 2008-11-30 01:31 pm (UTC)(link)
Доки читайте. Дотнет здесь ни при чём. Все stateful remote сервисы имеют таймаут. Иначе их просто заdosят, выжрав всю память на объекты, которые никогда не удаляются. Ну или клиент неожиданно повиснет/отвалится, а объекты так и будут висеть. http сессии тоже например таймаут имеют.

[identity profile] metaclass.livejournal.com 2008-11-30 01:55 pm (UTC)(link)
Не, я им пользуюсь, вижу, что хотели сделать хорошо, и в плане языка и платформы у них получилось. Но чем дальше от этого и ближе к прикладным задачам - тем более нарастает пиздец и безумие.

[identity profile] metaclass.livejournal.com 2008-11-30 01:58 pm (UTC)(link)
Да я уже понял.
Просто из сообщения об ошибке никак не следует что проблема с временем жизни. Да и сервис у меня синглетон и stateless, на самом деле его нужно было Client-Activated сделать, а я что-то перемудрил.

[identity profile] slonopotamus.livejournal.com 2008-11-30 08:06 pm (UTC)(link)
В плане языка у них очень получилось. Сижу вот на яве пишу и завидую.