Amr Mohammad Rashad Ответов: 1

Службы WCF письменной форме ставить или удалять методы сбоев сервиса


Я создаю веб-сервис для взаимодействия с базой данных, и он должен выполнять операции CRUD. Прямо сейчас он отлично работает с операцией чтения и записи служба WCF должна иметь метод, который вызывается из jQuery всякий раз, когда страница завершает загрузку, чтобы получить список всех поставщиков, и он отлично работает, однако, когда я обновляю службу WCF с помощью такого метода

[OperationContract]
    [WebInvoke(Method = "PUT", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    public Object PutSupplier(int id, Supplier oParameter)
    {
        // Do work
    }


ОПЕРАЦИОННАЯ

[OperationContract]
    [WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    public Object DeleteSupplier(int id)
    {
        // Do work
    }


Что-то происходит, и никакие данные не возвращаются, когда страница загружается, и операция вставки тоже не удалась, и я получил внутреннюю ошибку 500?!. Например,если бы вся служба WCF стала невидимой или не функционировала.

Вот мои другие методы службы WCF и вызов jQuery/Ajax

[OperationContract]
    [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    public List<Supplier> GetSupplier(int id)
    {
        // Add your operation implementation here
        return DbContext.DbContextManager.GetSupplier(id.ToNullableInt());
    }
    [OperationContract]
    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    public Supplier PostSupplier(Supplier oParameter)
    {
        return DbContext.DbContextManager.PostSupplier(oParameter);
    }


<script>
    $(function () {
        $.ajax({
            method: 'GET',
            url: '/WebServices/NameService.svc/GetSupplier',
            data: JSON.stringify({ id : 0 }),
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function (item) {
                $.each(item, function (i) {
                    var _tr = '<tr><td class="readonly-"><input type="text" class="form-control" value="' + item[i].CompanyName + '" style="display:table-cell; width:100%" readonly/></td><td>' +
                        '<button type="button" id="pencilbutton_' + item[i].SupplierId + '"  class="btn btn-success">' +
                        '<span class="glyphicon glyphicon-pencil"></span> Pencil</span></button>' +
                        '<button type="button" id="removebutton_' + item[i].SupplierId + '"  class="btn btn-danger"><span class="glyphicon glyphicon-remove"></span> Remove</button></td></tr>';
                    $('tbody').append(_tr);
                });
            }
        });
        $('table').on('focus', 'input[type="text"]', function () {
            $(this).removeAttr('readonly');
        });
        $(':button[class*="btn-primary"]').click(function () {
            if (Page_ClientValidate("MyValidationGroup")) {
                $.ajax({
                    method: 'POST',
                    url: '/WebServices/NameService.svc/PostSupplier',
                    data: JSON.stringify({ 'SupplierId': 0, 'CompanyName': $(':text[class="form-control"]').val() }),
                    dataType: 'json',
                    contentType: 'application/json; charset=utf-8',
                    success: function (item) {
                        var _tr = '<tr><td class="readonly-"><input type="text" class="form-control" value="' + item.CompanyName + '" style="display:table-cell; width:100%" readonly/></td><td>' +
                                 '<button type="button" id="pencilbutton_' + item.SupplierId + '"  class="btn btn-success">' +
                                 '<span class="glyphicon glyphicon-pencil"></span> Pencil</span></button>' +
                                 '<button type="button" id="removebutton_' + item.SupplierId + '"  class="btn btn-danger"><span class="glyphicon glyphicon-remove"></span> Remove</button></td></tr>';
                        $('tbody').append(_tr);
                    }
                });
            }
        });
    });
</script> 


Что я уже пробовал:

Вместо этого я пытаюсь использовать POST

1 Ответов

Рейтинг:
9

Amr Mohammad Rashad

I think it is the setting <enableWebScript /> within the end point behaviour is the reason for this cuz after I removed it everthing works fine :)