2010-03-25 4 views
2

У меня есть служба WCF, которую я хочу, чтобы мой клиент мог потреблять из IIS, не пропуская прокси. Клиент потреблял ASMX службы в VBScript, используя Htc поведение:Является ли использование прокси-сервера необходимым для использования службы WCF?

<div id="oWSInterop" style="behavior:url(webservice.htc)"></div> 

oWSInterop.useService "http://localhost/WSInteroperability.asmx", "WSInteroperability" 

Set response = oWSInterop.WSInteroperability.callServiceSync("BuildSingleDoc", 1002, 19499, XMLEncode(sAdditionalDetail)) 

Поэтому в основном я просто хочу, чтобы сделать эту работу с созданием, как несколько изменений, как это возможно на существующем клиенте. Я вынужден использовать прокси (то есть класс на стороне клиента, который предоставляет операции в службе WCF) при использовании службы WCF? Я понимаю преимущества прокси и не против использования его для большинства других реализаций клиента, но в этом случае я не уверен, что у меня есть время, чтобы разобраться с ним на клиенте - я просто хочу, чтобы он работал так это было только с изменением конечной точки.

+1

Возможно ли какое-то замешательство со словом «прокси»? прокси в этом смысле не является прокси-сервером HTTP; это класс на стороне клиента, который представляет сервис. – Cheeso

+0

да, вы правы - отредактировано в оригинальном посте, чтобы это отразить. – Tone

+0

Связанный: ** Вызов службы WCF из VBScript ** http://stackoverflow.com/questions/944975/calling-wcf-service-by-vbscript – Cheeso

ответ

2

Прокси-сервер на стороне клиента для вызова службы?

Да, вы определенно нуждаетесь в этом (если только вы не используете службы WCF на основе REST, которые вы можете вызвать только с помощью HttpClient) - вот где вся жизненная среда WCF живет и делает свою магию.

Если вы хотите вызвать службы на основе REST, вы можете сделать это без какого-либо прокси-сервера - но тогда вам остается делать XML или JSON самостоятельно. Это можно сделать, но это может быть не такая замечательная идея.

В чем проблема с прокси-сервером? Это действительно просто небольшая оболочка, которая связывает ваши вызовы с сериализованным сообщением и отправляет его на сервер. На мой взгляд, никакого большого вреда ...

+1

Не совсем * определенно *. Вы можете вызывать сервисы без прокси-класса, но вы должны создавать сообщения «вручную», и вам нужно развернуть ответы аналогичным образом. Это можно сделать, но не приятно, и вообще не рекомендуется, если вам не нужна предельная гибкость. – Cheeso

+0

@cheeso: хорошо, вы правы - в ** теории **, можно было бы, вероятно, вызвать службу WCF без клиентского прокси. Но это довольно «эзотерическое», я бы сказал - не очень вероятно и не очень легко сделать .... –

+0

не думаю, что я хочу побывать здесь - так как существующие звонки были asmx, и, таким образом, мыло основано Я хочу чтобы использовать тот же формат. – Tone

0

Что вы видите? Что заставляет вас поблагодарить, что прокси-сервер является проблемой? Если это серверный код, он должен использовать настройки браузера (WinINet), которые должны работать нормально. Возможно, «localhost» будет проблемой, хотя, поскольку к клиенту это все равно означает «поговорить с самим собой» (то есть не с сервером).

Если это серверная сторона, вам, вероятно, потребуется настроить WinHTTP соответствующим образом; в частности, пропустить прокси для локальных адресов. Разумеется, «localhost» должен быть обратным контуром ...

+0

это код на стороне клиента - не может сделать этот вызов из кода позади. Я получаю «Invalid active port», когда я пытаюсь вызвать службу так же, как она вызывала asmx. – Tone

Смежные вопросы