2010-12-08 5 views
0

J'ai une application asp.net dans laquelle j'utilise la méthode "Appel des opérations de service WCF dans AJAX". J'ai fini mon travail sans l'hébergement de service dans IIS. J'ai la bonne solution. Mais maintenant, j'ai une autre exigence dans laquelle j'utilise le service WCF qui est hébergé sur l'hôte local iis. Mais en cliquant sur le bouton, j'ai une erreur javascript comme objet attendu. Je ne sais pas pourquoi c'est arrivé? Mon code est illustré ci-dessous.Appel des opérations de service WCF dans 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; 
} 

le javascript message d'erreur est comme cette

Picture

S'il vous plaît aidez-moi pour résoudre ce problème.

+0

Est-ce URL travail http: //localhost/WCFService/Service1.svc? capable de naviguer dans le navigateur? – RameshVel

+0

ya .. son travail – MAC

Répondre

1

Problème avec java-script tel que Service1.Add... Le nom du proxy js généré ne serait pas Service1 et donc le problème. Le nom de l'objet proxy serait de type [Namespace].[Contract Name] où l'espace de noms du service, tel que déclaré par le paramètre Namespace de l'attribut ServiceContract. Si vous n'en avez pas spécifié un, la valeur par défaut est "tempuri.org". Par exemple, si votre service est défini comme

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

Puis, en js, vous devez utiliser Sample.Services.Service1.Add

Questions connexes