Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как обратиться к методам wcf сервера, подключение к сервису с кпк 
:(
    Опции темы
starostin
Дата 10.1.2011, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

Репутация: 1
Всего: 1



Минут 5 думал где задать этот вопрос, и решил, что здесь правильней и больше шансов, что ответят. То что речь идёт о compact fraemwork не столь важно наверно. Ситуация такая: есть рабочая серверная служба, которая реализует пару методов, предположим мне надо обратиться к методу List<string> Login(string Name, string Password). Как отправить запрос с вот этими двумя стрингами и получить List обратно? Вот чё то даже вообразить не могу как это происходит, можно какой нибудь пример или ссыль до ужаса простую?
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
triclosan
Дата 10.1.2011, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: нет
Всего: 12



Цитата(starostin @  10.1.2011,  21:51 Найти цитируемый пост)
серверная служба

связь это какй-то ip протокол? в пакетах только байты сидят, типов данных у них нет
PM MAIL   Вверх
Экскалупатор
Дата 11.1.2011, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: нет
Всего: 24



starostin, если WCF то обычно есть контракт(интерфейс), который известен серверу и пользователю. через этот контракт и обращаешься к методам. остальное делает WCF
PM MAIL ICQ   Вверх
WolfTheGrey
Дата 11.1.2011, 02:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: нет
Всего: 2



связь это какй-то ip протокол? в пакетах только байты сидят, типов данных у них нет

Нет тут уже идет rfc ищи в инете протоколы  WCF.
А лучше переделывай сервер под наш родной socket.
PM MAIL   Вверх
starostin
Дата 11.1.2011, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

Репутация: 1
Всего: 1



Экскалупатор, а вот если не иметь интерфейса, а примерно знать только о некоторых контрактах, можно ли так?
WolfTheGrey, мысля хорошая, и из изысканий из msdn нельзя было не наткнутся на сокеты, но я не представляю как в этом случае настраивать endpointы, при простом подключении, как тут, выдаёт ошибку об недостежимом endpointе
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
jonie
Дата 11.1.2011, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



Цитата

Экскалупатор, а вот если не иметь интерфейса, а примерно знать только о некоторых контрактах, можно ли так?

если речь идет про SOAP, то для него есть WSDL описание сервиса.
Для REST-подобного должно быть просто описание, равно как и для сокетов...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
starostin
Дата 11.1.2011, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

Репутация: 1
Всего: 1



jonie, вот вы паходу говорите о том что мне нужно, но для меня остаётся вопрос в разнице между soap и rest? немогли бы вы объяснить, до кучи показать пример кода, потому что visual studio не предлагает добавить к проекту файла конфига.
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
jonie
Дата 11.1.2011, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



starostin, разница между соап и рест-ом очевидна. SOAP более сложен с т.з. организации как минимум. Вы знаете вообще как выглядит SOAP а как REST ? Если нет, тогда в википедию и читать, читать, читать.... На пальцах это объяснять тут глупо - всё уже украдено до нас...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
starostin
Дата 11.1.2011, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

Репутация: 1
Всего: 1



Так, ну ага, бегло прочитал, мне нужен именно soap, нашёл мега супер пупер описаниие WSDL, но! Для меня по прежнему остается загадкой, КАК? А точнее ГДЕ? КАК и ГДЕ? мне прописать вот эти самые типы и методы что бы настроить эндпойнт, у проекта Smart Device Profect нет возможности добавления файла конфигурации, у сокета может быть есть какое то свойство которое может этим управлять? Или это может быть надо вшить в сообщение?
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
jonie
Дата 11.1.2011, 21:28 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



Цитата(starostin @  11.1.2011,  21:15 Найти цитируемый пост)
КАК и ГДЕ? мне прописать вот эти самые типы и методы что бы настроить эндпойнт, у проекта Smart Device Profect нет возможности добавления файла конфигурации, у сокета может быть есть какое то свойство которое может этим управлять? Или это может быть надо вшить в сообщение? 

какой нахрен файл конфигурации? WSDL описание вам нужно только чтобы слепить прокси классы автогенератором и не более.
В общем упрощенно схема работы выглядит так:
исходные данные: некий сервис, на чем-то написанный, умеет WSDL описание предоставлять. Вот пример на php подойдет: https://github.com/jonie/HTMLJavascriptTesting
задача: дернуть сервис и получить от него ответ
решение: узнать где взять WSDL сервиса, натравить на него svcutil.exe* утилиту, чтобы получить прокси классы**, а также класс контекста сервиса ***.
*)вместо неё можно использовать add service reference меню в VS в ProjectExplorer-е
**)Прокси классы это такие DTO классы, которые умеют сериализоваться используя специальный, упрощенный (в сравнении с XmlSerializer) DataContractSerializer сериализатор. 
***) Класс контекста сервиса это POCO класс, который не нуждается в сериализации. По сути своей он делает web Request-Responce, сериализуя передаваемые в методы параметры (зависят от wsdl описания). Реализует прокси паттерн. Классу контекста можно (и зачастую нужно) указать URI endpoint-а, где хостится сервис. Также ему возможно указать другие параметры создания, которые обычно WCF пишет в app.config файле (но никто не запрещает конфигурировать это ручками).

всё.

Это сообщение отредактировал(а) jonie - 11.1.2011, 21:29


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
starostin
Дата 12.1.2011, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

Репутация: 1
Всего: 1



Цитата(jonie @  11.1.2011,  21:28 Найти цитируемый пост)
 Классу контекста можно (и зачастую нужно) указать URI endpoint-а, где хостится сервис. Также ему возможно указать другие параметры создания, которые обычно WCF пишет в app.config файле (но никто не запрещает конфигурировать это ручками).

Вот, вот об этом я и говорю, есть wcf сервис и всё там указано, где мне этот же endpoint указать в клиенте?
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
jonie
Дата 12.1.2011, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



starostin, при создании System.ServiceModel.ClientBase наследника (создается при Add Reference в окне например или при использовании вышеупомянутой утилиты) при вызове конструктора передать.
Вот такой там типичный код генерируется:
Код

        public Service1Client(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {  //!!!
        }



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
starostin
Дата 15.1.2011, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

Репутация: 1
Всего: 1



Блин, да как же мысль то донести...
Какой объект должен принять эти биндинг и эндпоинт?

Агааааа, нашёл, вот что я искал Client Channel

в связи с этим два новых вопроса, там в строке 
Код

Message requestmessage = Message.CreateMessage(
            binding.MessageVersion,
            "http://contoso.com/someaction",
             "This is the body data");

я не понимаю что такое "http://contoso.com/someaction" и какую роль он тут играет. Второй вопрос, как организовать message в котором два значения для одного метода, т.е. на сервисе меня ждёт метод List<string> Login (string Name, string Password)?

Это сообщение отредактировал(а) starostin - 15.1.2011, 17:44
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
jonie
Дата 16.1.2011, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



Цитата


я не понимаю что такое "http://contoso.com/someaction" и какую роль он тут играет.
soap action это. Читайте про SOAP протокол - узнаете что это такое.

чета вы вообще не то творите. Давайте вы сначала прочитаете книжку про WCF, потом уже будете гадать?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0900 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.