|
Межсервисное взаимодействие. Посылает один, принимает другой
|
|||
---|---|---|---|
#18+
Книгу я пока до конца не дочитал и пока не все понял. Но надо делать. Задача. На сервере болтается Главный Сервис (ГС), который может выполнять ВСЕ. К нему обращается веб-сервис (ВС) через именованные каналы. Они на одной машине крутятся. Насколько я понял, в пределах одной машины это самый лучший способ. Получив запрос от ВС, ГС запускает на удаленной машине Процесс (П), который, как минимум, должен сообщить, что он запустился. В настоящее время я ловлю в ГС консольный вывод от П. Все хорошо, но иногда этот вывод в кодировке 1251, а иногда - в 866. Что не нравится пользователям Попытки понять кодировку у меня не получились, да и все равно, это не очень хороший способ. Я знаю как поймать сообщение от П. Но поймает его не тот сервис, который ожидает ответа. Что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 21:23 |
|
Межсервисное взаимодействие. Посылает один, принимает другой
|
|||
---|---|---|---|
#18+
Cat2Но поймает его не тот сервис, который ожидает ответа.Почему не тот? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 21:27 |
|
Межсервисное взаимодействие. Посылает один, принимает другой
|
|||
---|---|---|---|
#18+
i seeCat2Но поймает его не тот сервис, который ожидает ответа.Почему не тот? Между ВС и ГС есть канал. ВС ожидает отклика от метода ГС.1. Но процесс П, запущеный ГС.1 ничего не знает об этом канале. Он тупо посылает сообщение на другой слушатель, ГС.2. Как бы ему узнать об этом канале или передать сообшение от одного (ГС.2) слушателя другому (ГС.1)? Или я просто неправильно представляю взаимодействие? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 21:55 |
|
Межсервисное взаимодействие. Посылает один, принимает другой
|
|||
---|---|---|---|
#18+
Про кодировку: жесть какая-то. А почему именованные каналы? Не хочешь проблем на ровном месте, кури классические http байдинги. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 22:30 |
|
Межсервисное взаимодействие. Посылает один, принимает другой
|
|||
---|---|---|---|
#18+
Cat2Как бы ему узнать об этом каналеНу пусть этот канал подпишется в П с коллбэк-методом, что ли. Или как у тебя сделано? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 23:27 |
|
Межсервисное взаимодействие. Посылает один, принимает другой
|
|||
---|---|---|---|
#18+
МСУА почему именованные каналы? Я по книжке делаю. Там написано, что это самый надежный способ, если взаимодействие в пределах одной машины. i seeНу пусть этот канал подпишется в П с коллбэк-методом, что ли А как это сделать? Я что-то совсем туплю Схема примерна такая Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2013, 09:15 |
|
Межсервисное взаимодействие. Посылает один, принимает другой
|
|||
---|---|---|---|
#18+
Cat2А как это сделать?Погугли по реализациям паттерна Publish-Subscribe, как я понял из твоего описания проблемы, он тут будет в самый раз ИМХО, вот этот подойдёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2013, 14:31 |
|
Межсервисное взаимодействие. Посылает один, принимает другой
|
|||
---|---|---|---|
#18+
в П можно передать параметр? если да, то пусть П принимает этот параметр, делает свою работу и складывает результат на wcf службу в которой просто будет List(of ...) на параметр и результат. А потом ВС забирает этот результат по параметру. Да и вообще просто в базу можешь писать свои ответы. servicecontract это не , чтото изолированное. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2013, 12:42 |
|
|
start [/forum/moderation_log.php?user_name=chal.nikkal]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 9571ms |
total: | 9718ms |
0 / 0 |