2011-01-13 5 views
0

Я создал ряд стандартных служб WCF (контракт на обслуживание и хост (svc)) в отдельных сборках). Я запустил веб-сайт в IIS для размещения Сервисов (т. Е. Адрес http://services:1000/wcfservices.svc).Вызов службы WCF через Javascript, AJAX или JQuery

Тогда в моем проекте веб-сайта я добавил ссылку. Я могу нормально звонить на услуги. Мне необходимо вызвать часть клиентской части служб. Не уверен, что я должен смотреть на статьи, вызывающие службы WCF через службы поддержки AJAX, JQuery или JSON с поддержкой WCF. Может ли кто-нибудь представить какие-либо мысли или опыт с настройкой как таковой?

Некоторые из изменений, которые я сделал добавлял следующие к Договору операции:

[OperationContract] 
[WebInvoke(Method = "POST", UriTemplate = "SetFoo")] 
void SetFoo(string Id); 

Тогда это над реализацией интерфейса:

[AspNetCompatibilityRequirements(RequirementsMode = 
          AspNetCompatibilityRequirementsMode.Allowed)] 

Тогда в WebConfig службы у меня есть это (parens являются угловыми скобками):

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"> 
    <baseAddressPrefixFilters> 
    <add prefix="http://services:1000/wcfservices.svc/"/>> 
    </baseAddressPrefixFilters> 
</serviceHostingEnvironment> 
<serviceHostingEnvironment multipleSiteBindingsEnabled="false" /> 

Затем на стороне клиента Я попытался это:

<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server"> 
    <compositeScript> 
     <Scripts> 
      <asp:ScriptReference 
         Path="http://Flixsit:1000/FlixsitWebServices.svc" /> 
     </Scripts> 
    </CompositeScript> 
</asp:ScriptManagerProxy> 

Я пытаюсь вызвать службу, как это в JavaScript:

wcfservices.SetFoo(string Id); 

Ничто не работает. Если это идея или лучшее решение для вызова JSON enable, JQuery и т. Д. Я готов внести какие-либо изменения.

Спасибо за любые предложения/советы предусмотренных ....

ответ

0

Та же политика происхождения помешают клиента от делать AJAX звонки на службу, расположенной в другом домене (другой хост), чем одну порцию до полотна стр. Вы можете сделать эту работу, используя JSONP, а не JSON. Вам нужно будет изменить свою службу, чтобы принять функцию обратного вызова и доставить клиенту немного javascript, вызывающего этот обратный вызов с данными JSON.

+0

Есть ли пример настройки этого доступного где-нибудь? Спасибо за ваш отзыв. – obautista

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