2013-02-06 1 views
0

저는이 문제를 해결하기 위해 머리를 부러 뜨 렸습니다. WCF 서비스에 대한 많은 경험이 없으므로 놓친 간단한 내용 일 수 있기를 바랍니다.JQuery의 WCF OData 서비스에 데이터 게시

그래서 같이 우리의 개체 모델을 노출이 WCF 중 하나로, OData 서비스를 설정 한 : 지금

public static void InitializeService(DataServiceConfiguration config) 
    { 
     config.SetEntitySetAccessRule("*", EntitySetRights.All); 
     config.SetServiceOperationAccessRule("*", ServiceOperationRights.All); 
     config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; 
    } 

나는 데이터가 문제없이 jQuery를 사용하는 것이 접근 봤는데,하지만 난 JSONP 객체에게 I를 업데이트하면 가져 와서 데이터베이스에 업데이트 서비스로 다시 보내면 HTTP 501 코드 (구현되지 않음)가 반환됩니다.

function commitData() { 
     $.ajax({ 
      url: 'http://localhost:7634/API/Service.svc/tbl_bericht_vertalingen/?$format=json&Authorization=' + userGuid, 
      contentType: 'application/json', 
      type: 'PUT', 
      data: jsonObject, 
      dataType: 'json', 
      error: function() { alert("oops!"); }, 
      success: updateCallback 
     }); 
    } 

    function updateCallback(result) { 
     var record = result["d"]; 
     alert("Updated on record with ID " + record.Id); 
    } 

된 JSONObject 내가 이전에 서비스를 일부 업데이트 된 속성에서받은 동일한 개체는 다음과 같습니다

는 여기가 서비스로 다시 객체를 넣어 작성한 코드입니다.

앞에서 설명한 것처럼 jQuery를 호출하면 서비스에서 '501 - 구현되지 않음'이 다시 나타납니다.

도움을 주시면 감사하겠습니다.

+0

을 진행 상황에 대한 자세한 내용을 보려면 [this] (http://blogs.msdn.com/b/phaniraj/archive/2008/06/18/debugging-ado-net-data-services.aspx) 블로그 게시물의 단계를 따르십시오. . –

답변

1

서비스가 업데이트 가능하도록 구성되지 않은 것 같습니다. 서비스 지원 업데이트를 수행하려면 IUpdatable (또는 IDataServiceUpdateProvider) 구현을 제공해야합니다.

공급자로 Entity Framework를 사용하는 경우이 기능은 기본적으로 작동합니다. 그러나 리플렉션 프로 바이더를 사용하는 경우이 인터페이스를 직접 구현해야합니다. 아마도이 인터페이스를 제공하는 가장 간단한 방법은 DataService의 "T"클래스에 구현하는 것입니다. 자세한 내용은

,이 문서 체크 아웃 : http://msdn.microsoft.com/en-us/data/gg191846.aspx, 또는이 다른 스택 오버플로 질문 (IUpdatable 및 IDataServiceUpdateProvider 검색해보십시오)의 사용을 고려하면 다시 WCF 데이터 서비스에서 오류 코드를 얻을 때마다 Any good sample for an updatable WCF Data Service implementation