Re[10]: Как выполнить метод в другом (основном) потоке?
От: Аноним  
Дата: 13.07.09 18:46
Оценка:
Здравствуйте, SergeyT., Вы писали:

ST>Ну, сервисы же не в .net реализованы . Это ведь всего лишь обертка над Win API, которое о .net слыхом не слыхивала. А чем не подходит стандартный средства сервисов, которые предусматривают хостинг более чем одного сервиса в одном исполняемом файле?


пока сервисов было парочка, было терпимо "поддерживать" в таком виде. потом стали появлятся еще и еще задачи схожие по типу обработки, вот и пришлось сделать в виде плагинов, получилось вроде бы неплохо — реализвуешь интерфейс, подкидываешь в нужную папку и все готово, только не все пока, что хотелось.

(кстати очень напоминает принцип oracle jobs — работают независимо и не влияют на работу друг-друга даже в случаях ошибок)

в идеале хочу плагинный подход но с доменами приложений под каждую сущность-службу. при старте сервиса создается домен, запускается служба, при остановке — стопим, выгружаем домен. да тут возникла трабла с тем, что сервис может отвалится: ну вот конкретный пример — сервис работает под учеткой, происодит имперсонация и... ошибка пароль не подходит. ИМХО, нужно писать в лог сервиса об этой конкретной ошибке, в журнал событий приложения fatal error, и, переводить службу с состояние Stopped. Вот с последним и бьюсь

кроме того в .net есть косяк с выгрузкой сборок (т.е. их и выгрузить нельзя), а было бы неплохо, например для обновления плагина при работающем процессе. AppDomain.Unload не помогает потому как тип сборки-плагина загружены получается и в главный домен тоже (ну чтобы иметь типы из которых потом будут создаваться инстансы служб)

короче дурдом, куда не копни — везде какие-то косяки архитектуры
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.