2010-12-08 3 views
0

У меня есть одно приложение asp.net, в котором я использую метод «Вызов службы WCF в AJAX». Я закончил свою работу без сервисного хостинга в IIS. Я получил правильное решение. Но теперь у меня есть другое требование, в котором я использую службу WCF, размещенную на локальном хосте iis. Но нажав кнопку, я получил одну ошибку javascript, подобную ожидаемому объекту. Я не знаю, почему это произошло? Мой код показан ниже.Вызов служб WCF в AJAX

<fieldset style="width: 804px" align="center"> 
    <legend>Consuming WCF Service using Client-Side AJAX</legend> 
    <div align="left" style="text-align: center"> 
     <form id="form1" runat="server"> 
     <asp:ScriptManager ID="SM1" runat="server"> 
      <Services> 
       <asp:ServiceReference Path="http://localhost/WCFService/Service1.svc" /> 
       <%--~/Service1.svc--%> 
      </Services> 
     </asp:ScriptManager> 
     <input id="addNum1" type="text" size="3" /> 
     + 
     <input id="addNum2" type="text" size="3" /> 
     = 
     <input id="addAnswer" type="text" size="3" /><br /> 
     <input id="btnAddition" type="button" value="Do Addition" onclick="DoAddition()" /> 
     <br /> 
     <br /> 
     <input id="subtractNum1" type="text" size="3" /> 
     - 
     <input id="subtractNum2" type="text" size="3" /> 
     = 
     <input id="subtractAnswer" type="text" size="3" /><br /> 
     <input id="btnSubtraction" type="button" value="Do Subtraction" onclick="DoSubtraction()" /> 
     <br /> 
     <br /> 
     </form> 
    </div> 
</fieldset> 

<script language="javascript" type="text/javascript"> 

function DoAddition() { 
    Service1.Add(document.getElementById('addNum1').value, document.getElementById('addNum2').value, onAddSuccess); 
} 
function DoSubtraction() { 
    Service1.Subtract(document.getElementById('subtractNum1').value, document.getElementById('subtractNum2').value, onSubtractSuccess); 
} 

function onAddSuccess(result) { 
    document.getElementById('addAnswer').value = result; 
} 
function onSubtractSuccess(result) { 
    document.getElementById('subtractAnswer').value = result; 
} 

сообщение Javascript ошибка как этот

Picture

Пожалуйста, помогите мне решить эту проблему.

+0

в этот рабочий URL HTTP: //localhost/WCFService/Service1.svc? возможность просмотра в браузере? – RameshVel 2010-12-08 09:31:27

ответ

1

Проблема с java-скриптом, например Service1.Add... Имя сгенерированного прокси-сервера js не будет Service1 и, следовательно, проблема. Имя прокси-объекта будет иметь форму [Namespace].[Contract Name], где пространство имен службы, объявленное параметром Namespace атрибута ServiceContract. Если вы не указали один, по умолчанию «tempuri.org». Например, если ваша служба определяется как

[ServiceContract(Namespace="Samples.Services")] 
public class Service1 
{ 
    [OperationContract] 
    public void Add(... 

Тогда в JS, вам нужно использовать Sample.Services.Service1.Add

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