Вызов сервисных операций WCF в AJAX - PullRequest
0 голосов
/ 08 декабря 2010

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

<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

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

1 Ответ

1 голос
/ 08 декабря 2010

Проблема с 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...