powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Клиент для restful WEB-сервиса
21 сообщений из 46, страница 2 из 2
Клиент для restful WEB-сервиса
    #38493858
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Н,
ну это какая то новогодняя сказка, жили были 30 серверов, и вот однажды ночью, когда все пользователи
уснули, эти сайты проснулись, и начали вести беседу между собой, один рассказал, кто заходил к нему в течении суток,
другой рассказал что пользователь Иванов хотел подломить его.
- Угу возмутились сервера, и сообща решили забанить Васю из Иваново..
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38493861
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим НВариант с мессадж брокером выглядит заманчиво,но придется его отдельно где то разворачивать, обдумывать как к нему конектится, как логиниться и тд.

У вас сайты все на IIS, зачем придумывать, используйте MSMQ

1) Это компонент сервера, ставится легко
2) Для использования сервиса нужно всего лишь быть авторизованным в домене, да и то, для использования списков рассылки в Active Directory
3) Использовать также очень просто - Message, MessageQueue - смотрите MSDN, примеры простейшие. Соответствующий биндинг есть и в WCF
4) при необходимости обеспечивается гарантированная доставка сообщений

У вас будут плюсы децентрализованной архитектуры с администрированием транспорта системными администраторами. Всяко лучше самописных поделок.
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38493866
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степивот однажды ночью, когда все пользователи
уснули, эти сайты проснулись, и начали вести беседу между собой
+1

Придется на каждый сервер ставить свой win-сервис, обрабатывающий web-сервис :-)
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38493870
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиМаксим Н,
ну это какая то новогодняя сказка, жили были 30 серверов, и вот однажды ночью, когда все пользователи
уснули, эти сайты проснулись, и начали вести беседу между собой, один рассказал, кто заходил к нему в течении суток,
другой рассказал что пользователь Иванов хотел подломить его.
- Угу возмутились сервера, и сообща решили забанить Васю из Иваново..
Есть центральный сервер, вот он время от времени и раздает сообщения свои подчиненным. Они (подчиненные) в свою очередь ему могут отвечать, между собой не общаются.
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38493881
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Максим НВариант с мессадж брокером выглядит заманчиво,но придется его отдельно где то разворачивать, обдумывать как к нему конектится, как логиниться и тд.

У вас сайты все на IIS, зачем придумывать, используйте MSMQ

1) Это компонент сервера, ставится легко
2) Для использования сервиса нужно всего лишь быть авторизованным в домене, да и то, для использования списков рассылки в Active Directory
3) Использовать также очень просто - Message, MessageQueue - смотрите MSDN, примеры простейшие. Соответствующий биндинг есть и в WCF
4) при необходимости обеспечивается гарантированная доставка сообщений

У вас будут плюсы децентрализованной архитектуры с администрированием транспорта системными администраторами. Всяко лучше самописных поделок.

Зувчит заманчиво, надо обдумать.
Но ведь в любом случае нужен будет клиент, который будет отправлять сообщения в очередь и читать их от туда?
Поправьте пожалуйста если не прав.
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38493886
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Н,
авторЕсть центральный сервер, вот он время от времени и раздает сообщения свои подчиненным. Они (подчиненные) в свою очередь ему могут отвечать, между собой не общаются.
Так это обыкновенная трехзвенка,
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38493896
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим ННо ведь в любом случае нужен будет клиент, который будет отправлять сообщения в очередь и читать их от туда?

Не обязательно. Это уже зависит от вас. На MSMQ есть такое понятие как триггеры и правила. По приходу сообщения можно настроить фильтры и так далее, и тому подобное. Далее, запускается либо Com+ компонента (смотрите Enterprise Services ) либо экзешник, которым на вход подается сообщение
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38494263
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо, смотрю в сторону MSMQ.
Думаю как бы это могло выглядеть, пока представляю так:
например машине А нужно доставить несколько сообщений машине Б.
А формирует сообщения и ломится в MSMQ, работающий на Б, по HTTP.
Сообщения оказываются в очереди на Б, дальше отрабатываются машиной Б, например по триггеру.
Так?
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38494301
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим НА формирует сообщения и ломится в MSMQ, работающий на Б, по HTTP.

Зачем по Http? Вы комсомолец? Любите трудности?

Сервер A пишет в очередь B\private$\queue1
Это все. Далее, сама MSMQ берет на себя отправку сообщения на сервер В в очередь private$\queue1
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38494308
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Максим НА формирует сообщения и ломится в MSMQ, работающий на Б, по HTTP.

Зачем по Http? Вы комсомолец? Любите трудности?

Сервер A пишет в очередь B\private$\queue1
Это все. Далее, сама MSMQ берет на себя отправку сообщения на сервер В в очередь private$\queue1

Т.е. сообщение попадает из одной очереди в другую? Как?
Между серверами открыт только 80-й порт.
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38494319
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
круто, ТС сознался в распределённой системе никак не связанных между собой веб-серверов только на второй странице обсуждения =)
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38494327
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneкруто, ТС сознался в распределённой системе никак не связанных между собой веб-серверов только на второй странице обсуждения =)

Сам в шоке :-)

Максим Н,
Вы же говорили, что у вас сеть из 30 серверов? Сейчас выясняется, что они практически друг с другом не связаны? Что мешает открыть еще несколько портов?
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38494361
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Снова извиняюсь, что ввел в заблуждение.

Arm79Konst_Oneкруто, ТС сознался в распределённой системе никак не связанных между собой веб-серверов только на второй странице обсуждения =)

Сам в шоке :-)

Максим Н,
Вы же говорили, что у вас сеть из 30 серверов? Сейчас выясняется, что они практически друг с другом не связаны?

Говорил, и что работают они в интрасети тоже помоему говорил.

Arm79 Что мешает открыть еще несколько портов?

Безопасность и немного здоровой бюрократии.
Что можете предложить?
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38494378
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим НГоворил, и что работают они в интрасети тоже помоему говорил.

Ну да. Обычно в ИНТРАСЕТИ между серверами файерволов не ставят. Между сегментами обычно есть, а внутри - нет.

В принципе, это ваше дело, но для функционирования MSMQ нужен как минимум порт 1801/tcp.

Очередь сообщений
Системная служба очереди сообщений представляет собой инфраструктуру и средство разработки распределенных программ для обмена сообщениями в Windows. Такие программы способны осуществлять обмен данными между неоднородными сетями и отправлять сообщения между компьютерами, которые временно не могут установить подключение друг к другу. Служба очереди сообщений обеспечивает безопасность, эффективную маршрутизацию, поддержку отправки сообщений внутри транзакций, приоритетную отправку, а также гарантированную доставку сообщений.

Имя системной службы: MSMQ

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Прикладной протокол	Протокол	Порты
MSMQ			TCP		1801
MSMQ			UDP		1801
MSMQ-DCs		TCP		2101
MSMQ-Mgmt		TCP		2107
MSMQ-Ping		UDP		3527
MSMQ-RPC		TCP		2105
MSMQ-RPC		TCP		2103
RPC			TCP		135
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38495049
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Максим НГоворил, и что работают они в интрасети тоже помоему говорил.

Ну да. Обычно в ИНТРАСЕТИ между серверами файерволов не ставят. Между сегментами обычно есть, а внутри - нет.

В принципе, это ваше дело, но для функционирования MSMQ нужен как минимум порт 1801/tcp.

Очередь сообщений
Системная служба очереди сообщений представляет собой инфраструктуру и средство разработки распределенных программ для обмена сообщениями в Windows. Такие программы способны осуществлять обмен данными между неоднородными сетями и отправлять сообщения между компьютерами, которые временно не могут установить подключение друг к другу. Служба очереди сообщений обеспечивает безопасность, эффективную маршрутизацию, поддержку отправки сообщений внутри транзакций, приоритетную отправку, а также гарантированную доставку сообщений.

Имя системной службы: MSMQ

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Прикладной протокол	Протокол	Порты
MSMQ			TCP		1801
MSMQ			UDP		1801
MSMQ-DCs		TCP		2101
MSMQ-Mgmt		TCP		2107
MSMQ-Ping		UDP		3527
MSMQ-RPC		TCP		2105
MSMQ-RPC		TCP		2103
RPC			TCP		135


Интрасеть есть, но достаточно большая, со своими правилами и заморочками.
30 серверов - это 30 различных организаций (клиентов) и открывать порты придется в кажодй из них (где согласятся, где то откажутся, я бы на их месте сам наверное был против). А 80-й (443) порт открыт везде.
Какие возможны проблемы если организовать очередь на http?
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38495130
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим НКакие возможны проблемы если организовать очередь на http?

Придется а) на каждом сервере IIS иметь б) так как MSMQ over HTTP использует SOAP, имеет ли смысл уже использование MSMQ?

В итоге что остается? Сеть, объединяющая 30 серверов разных организаций, которые не доверяют друг другу. Значит и домена никакого нет. Почему она интрасетью называется, непонятно.

Раз общение между ними возможно ТОЛЬКО с помощью Http(s), то остаётся только простенький Win-сервис написать, который умеет обращаться к Web-сервисам.

Зачем вам много инсталляций этого сервиса? Разве одного не достаточно, который будет иметь возможность опрашивать ВСЕ Web-сервисы?

Писать win-сервисы очень просто. Штатная заготовка в VS достаточно хороша. Я лично написал для себя проект, который работает как консоль (удобно отлаживать), но имеет возможность регистрировать себя в системе как сервис (имя_программы.exe -install имя_сервиса). Пришлось заморочиться, чтобы не зависеть от InstallUtil и иметь возможность регистрировать один и тот же код под разными именами служб.

Консоль и сервис в одном флаконе
Код: 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.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
using Common.Logging;
using System;
using System.Collections;
using System.Configuration.Install;
using System.Diagnostics;
using System.ServiceProcess;

// 1) Создаем проект как сервис
// 2) устанавливаем тип проекта в свойствах как консоль, а не Windows application
// 3) Добавляем к инсталляторам еще и EventLogInstaller, встроенный можно удалить при желании

namespace Kav.GameDev.Server.Core
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main(string[] args)
        {
            var logger = LogManager.GetCurrentClassLogger();

            if (args.Length == 0)
            {
                if (Environment.UserInteractive)
                {
                    logger.Info("Программа запущена в консольном режиме");

                    try
                    {
                        using (var worker = new ServiceWorker(ServiceWorker.GetIterationTimeout(), ServiceWorker.GetEmergencyTimeSpan()))
                        {
                            worker.Start();

                            Console.WriteLine("Приложение запущено и работает");
                            Console.WriteLine("Нажмите <ENTER> для завершения приложения");
                            Console.ReadLine();

                            worker.Stop();
                        }
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex);
                        throw;
                    }
                }
                else
                {
                    logger.Info("Программа пытается запуститься как сервис");
                    ServiceBase.Run(new ServiceBase[] { new Service() });
                }

                // выход из программы
                logger.Info("Завершение работы приложения");
            }
            else
            {
                #region Управление сервисом

                if (args[0] == "-help")
                {
                    logger.Info("Вывод помощи");

                    Console.WriteLine("-help");
                    Console.WriteLine("-install SERVICE_NAME");
                    Console.WriteLine("-uninstall SERVICE_NAME");
                }

                if (args[0] == "-install")
                {
                    string serviceName = args[1];
                    using (ProjectInstaller projectInstaller = new ProjectInstaller { Context = new InstallContext() })
                    {
                        projectInstaller.Context.Parameters.Add("assemblypath", Process.GetCurrentProcess().MainModule.FileName);
                        foreach (Installer installer in projectInstaller.Installers)
                            installer.Context = projectInstaller.Context;

                        projectInstaller.ServiceInstaller.ServiceName =
                             projectInstaller.ServiceInstaller.DisplayName =
                                  projectInstaller.EventLogInstaller.Source = serviceName;

                        IDictionary dictionary = new Hashtable();
                        try
                        {
                            projectInstaller.Install(dictionary);
                            projectInstaller.Commit(dictionary);

                            logger.Info(m => m("Сервис {0} инсталлирован успешно", serviceName));
                        }
                        catch (Exception ex)
                        {
                            projectInstaller.Rollback(dictionary);

                            logger.Error(m => m("Сервис {0} вызвал ошибку при инсталляции", serviceName), ex);
                        }
                    }
                }

                if (args[0] == "-uninstall")
                {
                    string serviceName = args[1];
                    using (var projectInstaller = new ProjectInstaller { Context = new InstallContext() })
                    {
                        projectInstaller.Context.Parameters.Add("assemblypath", Process.GetCurrentProcess().MainModule.FileName);
                        foreach (Installer installer in projectInstaller.Installers)
                            installer.Context = projectInstaller.Context;

                        projectInstaller.ServiceInstaller.ServiceName =
                             projectInstaller.ServiceInstaller.DisplayName =
                                  projectInstaller.EventLogInstaller.Source = serviceName;
                        try
                        {
                            projectInstaller.Uninstall(null);

                            logger.Info(m => m("Сервис {0} деинсталлирован", serviceName));
                        }
                        catch (Exception ex)
                        {
                            logger.Error(m => m("Сервис {0} вызвал ошибку при деинсталлирован", serviceName), ex);
                        }
                    }
                }
                #endregion
            }
        }
    }
}

...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38495140
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
ServiceWorker(ServiceWorker.GetIterationTimeout(), ServiceWorker.GetEmergencyTimeSpan())


Жестокая проектировка класса...
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38495152
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
Код: c#
1.
ServiceWorker(ServiceWorker.GetIterationTimeout(), ServiceWorker.GetEmergencyTimeSpan())



Жестокая проектировка класса...

Ерунда. Исторически так сложилось, я и не стал править. В шаблоне проекта лежит, кушать не просит.
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38495271
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79кушать не просит.
Ок, фиг бы с ним.
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38495337
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Максим НКакие возможны проблемы если организовать очередь на http?

Придется а) на каждом сервере IIS иметь б) так как MSMQ over HTTP использует SOAP, имеет ли смысл уже использование MSMQ?

В итоге что остается? Сеть, объединяющая 30 серверов разных организаций, которые не доверяют друг другу. Значит и домена никакого нет. Почему она интрасетью называется, непонятно.

Раз общение между ними возможно ТОЛЬКО с помощью Http(s), то остаётся только простенький Win-сервис написать, который умеет обращаться к Web-сервисам.

Зачем вам много инсталляций этого сервиса? Разве одного не достаточно, который будет иметь возможность опрашивать ВСЕ Web-сервисы?

Писать win-сервисы очень просто. Штатная заготовка в VS достаточно хороша. Я лично написал для себя проект, который работает как консоль (удобно отлаживать), но имеет возможность регистрировать себя в системе как сервис (имя_программы.exe -install имя_сервиса). Пришлось заморочиться, чтобы не зависеть от InstallUtil и иметь возможность регистрировать один и тот же код под разными именами служб.

Консоль и сервис в одном флаконе
Код: 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.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
using Common.Logging;
using System;
using System.Collections;
using System.Configuration.Install;
using System.Diagnostics;
using System.ServiceProcess;

// 1) Создаем проект как сервис
// 2) устанавливаем тип проекта в свойствах как консоль, а не Windows application
// 3) Добавляем к инсталляторам еще и EventLogInstaller, встроенный можно удалить при желании

namespace Kav.GameDev.Server.Core
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main(string[] args)
        {
            var logger = LogManager.GetCurrentClassLogger();

            if (args.Length == 0)
            {
                if (Environment.UserInteractive)
                {
                    logger.Info("Программа запущена в консольном режиме");

                    try
                    {
                        using (var worker = new ServiceWorker(ServiceWorker.GetIterationTimeout(), ServiceWorker.GetEmergencyTimeSpan()))
                        {
                            worker.Start();

                            Console.WriteLine("Приложение запущено и работает");
                            Console.WriteLine("Нажмите <ENTER> для завершения приложения");
                            Console.ReadLine();

                            worker.Stop();
                        }
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex);
                        throw;
                    }
                }
                else
                {
                    logger.Info("Программа пытается запуститься как сервис");
                    ServiceBase.Run(new ServiceBase[] { new Service() });
                }

                // выход из программы
                logger.Info("Завершение работы приложения");
            }
            else
            {
                #region Управление сервисом

                if (args[0] == "-help")
                {
                    logger.Info("Вывод помощи");

                    Console.WriteLine("-help");
                    Console.WriteLine("-install SERVICE_NAME");
                    Console.WriteLine("-uninstall SERVICE_NAME");
                }

                if (args[0] == "-install")
                {
                    string serviceName = args[1];
                    using (ProjectInstaller projectInstaller = new ProjectInstaller { Context = new InstallContext() })
                    {
                        projectInstaller.Context.Parameters.Add("assemblypath", Process.GetCurrentProcess().MainModule.FileName);
                        foreach (Installer installer in projectInstaller.Installers)
                            installer.Context = projectInstaller.Context;

                        projectInstaller.ServiceInstaller.ServiceName =
                             projectInstaller.ServiceInstaller.DisplayName =
                                  projectInstaller.EventLogInstaller.Source = serviceName;

                        IDictionary dictionary = new Hashtable();
                        try
                        {
                            projectInstaller.Install(dictionary);
                            projectInstaller.Commit(dictionary);

                            logger.Info(m => m("Сервис {0} инсталлирован успешно", serviceName));
                        }
                        catch (Exception ex)
                        {
                            projectInstaller.Rollback(dictionary);

                            logger.Error(m => m("Сервис {0} вызвал ошибку при инсталляции", serviceName), ex);
                        }
                    }
                }

                if (args[0] == "-uninstall")
                {
                    string serviceName = args[1];
                    using (var projectInstaller = new ProjectInstaller { Context = new InstallContext() })
                    {
                        projectInstaller.Context.Parameters.Add("assemblypath", Process.GetCurrentProcess().MainModule.FileName);
                        foreach (Installer installer in projectInstaller.Installers)
                            installer.Context = projectInstaller.Context;

                        projectInstaller.ServiceInstaller.ServiceName =
                             projectInstaller.ServiceInstaller.DisplayName =
                                  projectInstaller.EventLogInstaller.Source = serviceName;
                        try
                        {
                            projectInstaller.Uninstall(null);

                            logger.Info(m => m("Сервис {0} деинсталлирован", serviceName));
                        }
                        catch (Exception ex)
                        {
                            logger.Error(m => m("Сервис {0} вызвал ошибку при деинсталлирован", serviceName), ex);
                        }
                    }
                }
                #endregion
            }
        }
    }
}



Да, с "интрасетью"я погорячился.
Идея с web-сервисами и одной управляющей виндовой службой интересная - не додумался до этого...
С IIS не проблема, т.к. он и так везде настроен и работает, web-сервис для него будет очередным web-приложением, которое он будет "показывать".

Есть еще один вопрос (правда наверное не со всем по теме...), было бы здорово услышать мнение:

помимо небольших сообщений (в большом количестве), которые можно легко обернуть в json(xml), а потом достать от туда, предполагается транспортировка файлов (причем довольно больших - до 100 Мб легко), с главного сервака на дочерние и обратно.

Была идея такая - захостить файлы на главном web-сервере, чтобы они были доступны по http(s), что то типа хостера файлов. Дальше передавать web-сервису дочернего сервера только описание такого файла(файлов) (имя файла, где на хостере можно забрать, куда у себя положить и т.д.). При обработке такого запроса дочерний сервак сам скачает его с хостера.
...
Рейтинг: 0 / 0
Клиент для restful WEB-сервиса
    #38495577
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может вам шарепоинт-портал посмотреть?
...
Рейтинг: 0 / 0
21 сообщений из 46, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Клиент для restful WEB-сервиса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]