Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы и WCF
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 16.10.2011
Сообщений: 85
1

Как заставить сервис отправлять сообщения?

29.08.2015, 14:09. Просмотров 714. Ответов 3
Метки нет (Все метки)


Добрый день, есть некий WCF сервис реализованный примерно следующим образом. И небольшое консольное приложение которое использует библиотеку websocket4net для обработки сообщений полученных от сервиса. После запуска сервиса, консольное приложение сообщения не получает. Как заставить сервис отправлять сообщения? Спасибо.

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<configuration>
  <system.serviceModel>
    <services>
      <service name="WcfServiceLibrary2.Service1">
        <endpoint address="http://localhost:8732/service1" 
                  binding="webHttpBinding" 
                  contract="WcfServiceLibrary2.IService1"/>
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior>
          <webHttp />
        </behavior>
      </endpointBehaviors>
    </behaviors>
  </system.serviceModel>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>
C#
1
2
3
4
5
6
7
8
9
namespace WcfServiceLibrary2
{
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        Person GetData(string id);
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
namespace WcfServiceLibrary2
{
    public class Service1 : IService1
    {
            [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "data/{id}")]
            public Person GetData(string id)
            {
                // lookup person with the requested id 
                return new Person()
                {
                   id=id,
                   Name="John"
                };
            }
    }
    public class Person
    {
        public string Name { get; set; }
        public string id { get; set; }
    }
}
Консольное приложение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            GetData getData = new GetData();
        }
    }
    public class GetData
    {
        private Client socket;
        public GetData()
        {
            socket = new Client("http://localhost:8732/Service1/data/12");
            socket.Message += Message;
        }
        private void Message(object sender, MessageEventArgs e)
        {
            Console.WriteLine(e.Message.Encoded.ToString());
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2015, 14:09
Ответы с готовыми решениями:

Как заставить <button> отправлять html во фрейм?
Ребята, куда в скрипт который ниже нужно воткнуть target=&quot;content&quot; чтобы по этой кнопке ololo.html...

Как выводить сообщения? И отправлять?
Допустим, у пользователя есть нумерованный список станций метро Барселоны. Необходимо написать код,...

Как заставить форму отправлять введённые данные на email?
Здравствуйте, уважаемые форумчане! У меня есть вот такая форма: &lt;form&gt; &lt;form action=&quot;mail.php&quot;...

Как заставить аутлук отправлять присьмо при старте
Всем доброго времени суток. Прошу не судить меня строго, я вообще нулевой в плане программирования....

3
Модератор
Эксперт .NET
5304 / 4100 / 1183
Регистрация: 12.10.2013
Сообщений: 11,909
Записей в блоге: 2
29.08.2015, 14:36 2
Цитата Сообщение от SinnerMan Посмотреть сообщение
Как заставить сервис отправлять сообщения?
Если я правильно понял, вы хотите через сервис передавать экземпляр своего, кастомного типа? Тогда пометьте его атрибутом DataContract (и все его члены, которые должны быть видимы, атрибутом DataMember). Для всех пользовательских типов это обязательно.
0
2 / 2 / 0
Регистрация: 16.10.2011
Сообщений: 85
29.08.2015, 14:59  [ТС] 3
Исправил, как вы порекомендовали
C#
1
2
3
4
5
6
7
8
    [DataContract]
    public class Person
    {
        [DataMember]
        public string Name { get; set; }
         [DataMember]
        public string id { get; set; }
    }
Но клиент не видит сообщений...
0
Модератор
Эксперт .NET
5304 / 4100 / 1183
Регистрация: 12.10.2013
Сообщений: 11,909
Записей в блоге: 2
29.08.2015, 15:05 4
Цитата Сообщение от SinnerMan Посмотреть сообщение
клиент не видит сообщений...
Посмотрите в этой теме, я там вроде делал пример, для такой операции (возврата пользовательского типа от сервера к клиенту).
https://www.cyberforum.ru/csha... 21057.html
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2015, 15:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как отправлять сообщения на все рабочие столы?
Имеем: -доступ к учетной записи вебадминистратора - 100 компьютеров в сети ...

Как отправлять сообщения на почту с разными содержаниями?
Здравствуйте,интересует такой проблематичный(по крайней мере для меня вопрос: человек вводит...

Как отправлять уведомления по id пользователя при получении сообщения?
Нужно отправлять уведомление пользователю с указанным id. При отправке 1 пользователем...

Как при вставке строки отправлять на e-mail сообщения
Добрый день Скажите пожалуйста. Я создаю тригер. В котором при вставке строки в таблицу должно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.