Здравствуйте, Andrbig, Вы писали:
A>Здравствуйте, Аноним, Вы писали:
А>>Как лучше созать сервис для существующего приложения?
A>Лучше поконкретнее сформулировать задачу.
Есть большое такое приложние. Уже написано.
Надо написать сервис которое бы его запускало и стопило вместе с сервисом.
Но в TaskManagere надо чтобы висел только один процесс севиса,
то есть Process.Start() без окна подошло бы если бы не последнее условие.
как лучше сделать? перенести весь код приложения в новосозданный сервис или наооброт что то добавить в приложение (аля прожект инсталятор, и тд) что бы оно смогло проинсталиться как сервис
Здравствуйте, dub, Вы писали:
dub>Здравствуйте, Andrbig, Вы писали:
A>>Здравствуйте, Аноним, Вы писали:
А>>>Как лучше созать сервис для существующего приложения?
A>>Лучше поконкретнее сформулировать задачу.
dub>Есть большое такое приложние. Уже написано. dub>Надо написать сервис которое бы его запускало и стопило вместе с сервисом. dub>Но в TaskManagere надо чтобы висел только один процесс севиса, dub>то есть Process.Start() без окна подошло бы если бы не последнее условие.
dub>как лучше сделать? перенести весь код приложения в новосозданный сервис или наооброт что то добавить в приложение (аля прожект инсталятор, и тд) что бы оно смогло проинсталиться как сервис
dub>зы: второе конечно предпочтительнее...
уже не очень актуалень этот вопрос
теперь вопрос след.:
у меня сервис является сервером NetRemoting
Так вот стартует он нормально и порт открывает нужный...
и слушает его
а вот клиент почему не может получить объект
в чем я мог ошибиться?
Здравствуйте, dub, Вы писали:
dub>у меня сервис является сервером NetRemoting dub>Так вот стартует он нормально и порт открывает нужный... dub>и слушает его dub>а вот клиент почему не может получить объект dub>в чем я мог ошибиться?
Это уже другая тема, заведи новую ветку и задай там вопрос. Только потрудись немного, опиши конкретнее:
1. какие методы у сервера (wellknown и т.д.), можешь .config привести
2. код клиента и его .config
3. какое именно исключение происходит (если происходит)
4. работат ли это если сервер отдельная прога, не сервис
5. как ты проверяешь что "стартует он нормально и порт открывает нужный"
Все заработало но только теперь вылазит exception из Com компонента.
Поясню.
У меня в приложении используется COM компонент и когда оно было обычным приложением все работало. Теперь же я не могу ничего сделать с компонентом. Опять же в обычном приложнии эта же ошибка вылазила из-за не установленного аттрибута [STAThread] — single-threaded apartment.
Этот аттрибут я ставил на метод static void Main().
В сервисе жекуда я его только не ставил
И над static void Main() (где сервис запускается)
и над методом OnStart() (в самом сервисе)
и даже конкретно над методот где используется этот компонент...
Здравствуйте, dub, Вы писали:
dub>Что мне делать подскажите
Не знаю, что там у тебя за компонента, но попробуй такой финт:
1. в OnStart запускай поток
2. в созданном потоке создавай этот компонент и в нем же работай с ним
Может комопнент хочет работать в том же потоке, где и создавался?
Здравствуйте, Andrbig, Вы писали:
A>Здравствуйте, dub, Вы писали:
dub>>Что мне делать подскажите
A>Не знаю, что там у тебя за компонента, но попробуй такой финт: A>1. в OnStart запускай поток A>2. в созданном потоке создавай этот компонент и в нем же работай с ним
A>Может комопнент хочет работать в том же потоке, где и создавался?
Не прошло
Мне то в принципе и работать надо с ним тольков одном методе.
Запустил в новом потоке и ... таже хрень...
Прошу заметить что это 99% изза STA потому что тот же самый код 100% правильно работает в не WinService приложении
Здравствуйте, dub, Вы писали:
dub>Не прошло dub>Мне то в принципе и работать надо с ним тольков одном методе. dub>Запустил в новом потоке и ... таже хрень... dub>Прошу заметить что это 99% изза STA потому что тот же самый код 100% правильно работает в не WinService приложении
Похоже на проблему с правами. Запусти сервис под тем же аккаунтом, что и не WinService приложение (там где 100%).
Здравствуйте, Andrbig, Вы писали:
A>Здравствуйте, dub, Вы писали:
dub>>Не прошло dub>>Мне то в принципе и работать надо с ним тольков одном методе. dub>>Запустил в новом потоке и ... таже хрень... dub>>Прошу заметить что это 99% изза STA потому что тот же самый код 100% правильно работает в не WinService приложении
A>Похоже на проблему с правами. Запусти сервис под тем же аккаунтом, что и не WinService приложение (там где 100%).
ставлю тип сервиса — User
и когда пытаюсь проинтались выдаётся такое окошко где надо ввести имя пользователя и пароль
ввожу те под которыми сча зашел в домен и
An exception occurred during the Install phase.
System.ComponentModel.Win32Exception: Имя учетной записи задано неверно или не существует, или же неверен указанный пароль
Здравствуйте, dub, Вы писали:
dub>Здравствуйте, Andrbig, Вы писали:
A>>Здравствуйте, dub, Вы писали:
dub>>>Не прошло dub>>>Мне то в принципе и работать надо с ним тольков одном методе. dub>>>Запустил в новом потоке и ... таже хрень... dub>>>Прошу заметить что это 99% изза STA потому что тот же самый код 100% правильно работает в не WinService приложении
A>>Похоже на проблему с правами. Запусти сервис под тем же аккаунтом, что и не WinService приложение (там где 100%).
dub>ставлю тип сервиса — User dub>и когда пытаюсь проинтались выдаётся такое окошко где надо ввести имя пользователя и пароль dub>ввожу те под которыми сча зашел в домен и
dub>An exception occurred during the Install phase. dub>System.ComponentModel.Win32Exception: Имя учетной записи задано неверно или не существует, или же неверен указанный пароль
ну я не знаю
создал еще одну учетную запись и все равно не могу проинсталить сервис с Account Type = User
ошибка та же...
вообще с каким типом аакаунта надо инсталить сервис?
Здравствуйте, Andrbig, Вы писали:
A>Здравствуйте, dub, Вы писали:
dub>>вообще с каким типом аакаунта надо инсталить сервис?
A>Инсталли с автоматом, чтбоы вопросов было меньше, потом вручную у сервиса исправишь аккаунт и все.
как это автоматом?
и как это потом можно вручную исправить?
dub>как это автоматом?
ServiceProcessInstaller.Account = ServiceAccount.LocalService
dub>и как это потом можно вручную исправить?
Правая клавиша на my Computer
пункт Manage
элемент в дереве Services and Applications
элемент Services
в списке справа находишь свой сервис
правая клавиша на нем
пункт Properties
вкладка Log On
пункт This Account
Здравствуйте, Andrbig, Вы писали:
A>Здравствуйте, dub, Вы писали:
dub>>как это автоматом? A>ServiceProcessInstaller.Account = ServiceAccount.LocalService
dub>>и как это потом можно вручную исправить?
A> A>Правая клавиша на my Computer A>пункт Manage A>элемент в дереве Services and Applications A>элемент Services A>в списке справа находишь свой сервис A>правая клавиша на нем A>пункт Properties A>вкладка Log On A>пункт This Account A>
можно было просто сказать в пропертях проинсталенного сервиса
хотя я мог бы и сам догадаться...
когда там выставляю запуск с учетной записью и указываю имя польз и пароль то вылетает таже же ошибка что типа такой уч записи не сущетсвует
блин че за фигня!!!
а вот там есть такая занимательная галочка — разрешить взаимодействие с рабочим столом и о чудо!!! поставил её и запустился мой cалc.ехе
запустился как новый процесс
как новый сервисный процесс даже
то что надо
осталось решить проблему с COM
Здравствуйте, dub, Вы писали:
dub>Здравствуйте, Andrbig, Вы писали:
A>>Здравствуйте, dub, Вы писали:
dub>>>как это автоматом? A>>ServiceProcessInstaller.Account = ServiceAccount.LocalService
dub>>>и как это потом можно вручную исправить?
A>> A>>Правая клавиша на my Computer A>>пункт Manage A>>элемент в дереве Services and Applications A>>элемент Services A>>в списке справа находишь свой сервис A>>правая клавиша на нем A>>пункт Properties A>>вкладка Log On A>>пункт This Account A>>
dub>можно было просто сказать в пропертях проинсталенного сервиса dub>хотя я мог бы и сам догадаться...
dub>когда там выставляю запуск с учетной записью и указываю имя польз и пароль то вылетает таже же ошибка что типа такой уч записи не сущетсвует dub>блин че за фигня!!!
dub>а вот там есть такая занимательная галочка — разрешить взаимодействие с рабочим столом и о чудо!!! поставил её и запустился мой cалc.ехе
dub>запустился как новый процесс dub>как новый сервисный процесс даже dub>то что надо dub>осталось решить проблему с COM
я имею ввиду не просто запустился процесс но я смог лицезреть и многофункицональное окошко калькулятора.
Кстати а как эту галочку поставить программно во время инсталла сервиса?
Здравствуйте, dub, Вы писали:
dub>>когда там выставляю запуск с учетной записью и указываю имя польз и пароль то вылетает таже же ошибка что типа такой уч записи не сущетсвует dub>>блин че за фигня!!!
Ты ошибаешься в имени/пароле — вот и фигня. Запуск под аккаунтом успешно работает — лично у себя проверил.
dub>>а вот там есть такая занимательная галочка — разрешить взаимодействие с рабочим столом и о чудо!!! поставил её и запустился мой cалc.ехе
Показался а не запустился. Запускается он всегда, показывается — нет.
dub>я имею ввиду не просто запустился процесс но я смог лицезреть и многофункицональное окошко калькулятора. dub>Кстати а как эту галочку поставить программно во время инсталла сервиса? http://www.rsdn.ru/article/baseserv/svcadmin-1.xml
Здравствуйте, Andrbig, Вы писали:
A>Здравствуйте, dub, Вы писали:
dub>>>когда там выставляю запуск с учетной записью и указываю имя польз и пароль то вылетает таже же ошибка что типа такой уч записи не сущетсвует dub>>>блин че за фигня!!!
A>Неправильно ты, дядя Федор, бутерброд ешь. (c) Кот Матроскин
фишка в том что надо было полный путь указать к учетной записи домена
то есть DOMAIN\UserProfile