2010-12-08 13 views
0

私は、「AJAXでのWCFサービス操作の呼び出し」メソッドを使用しているasp.netアプリケーションを1つ持っています。 IISでサービスをホストせずに作業を終了しました。私は正しい解決策を得た。しかし、今、私はローカルホストiisでホストされているWCFサービスを使用している別の要件があります。しかし、ボタンをクリックすると、オブジェクトのような1つのJavaScriptエラーが発生しました。なぜこれが起こったのか分からないのですか? 私のコードは以下の通りです。AJAXでのWCFサービス操作の呼び出し

<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

+0

ya ..その作業 – MAC

答えて

1

問題は、Service1.Add..などのJavaスクリプトです。生成されたjsプロキシの名前はService1ではないため、問題になります。プロキシオブジェクトの名前は、[Namespace].[Contract Name]の形式になります。ここで、ServiceContract属性のNamespaceパラメータで宣言されているサービスの名前空間。指定しない場合、デフォルト値は "tempuri.org"です。あなたのサービスが

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

として定義されている場合たとえば、その後JSで、あなたはSample.Services.Service1.Add

関連する問題