在升級到WCF Data Services 5.0 for OData V3後,我無法進行插入或更新。 唯一可能的是選擇。升級到WCF Data Services 5.0後缺少Content-Type標頭值
EDIT
在異常重寫方法HandleException:
異常: System.Data.Services.DataServiceException:Content-Type頭值丟失。 在System.Data.Services.HttpProcessUtility.ReadContentType(字符串的contentType,字符串& MIME,編碼&編碼) 在System.Data.Services.Serializers.Deserializer.CreateDeserializer(RequestDescription描述,IDataService DataService的,布爾更新,UpdateTracker跟蹤器) 在System.Data.Services.DataService 1.HandlePostOperation(RequestDescription description, IDataService dataService) at System.Data.Services.DataService
1.ProcessIncomingRequest(RequestDescription描述,IDataService的DataService) 在System.Data.Services.DataService 1.HandleNonBatchRequest(RequestDescription description) at System.Data.Services.DataService
1.HandleRequest()
ResponseStatusCode:400
客戶代碼 我設置在HTTP請求報頭的令牌......
/// <summary>
/// Initializes a new instance of the <see cref="ServiceBase"/> class.
/// </summary>
/// <param name="uri">service uri</param>
protected ServiceBase(Uri uri)
{
this.Context = new Entities(uri) { MergeOption = MergeOption.OverwriteChanges };
this.Context.SendingRequest += new EventHandler<SendingRequestEventArgs>(this.ContextSendingRequest);
}
/// <summary>
/// OnSendingRequest
/// </summary>
/// <param name="sender">source</param>
/// <param name="e">event args</param>
private void ContextSendingRequest(object sender, SendingRequestEventArgs e)
{
e.RequestHeaders["token"] = "xyassdfdfdfdf";
}
服務的代碼: 的服務解析這個頭,並檢查令牌
public XYDataService()
{
this.ProcessingPipeline.ProcessingRequest += this.ProcessingPipelineProcessingRequest;
}
/// <summary>
/// OnProcessingRequest
/// </summary>
/// <param name="sender">source</param>
/// <param name="e">event args</param>
private void ProcessingPipelineProcessingRequest(object sender, DataServiceProcessingPipelineEventArgs e)
{
var authHeader = HttpContext.Current.Request.Headers["token"];
if (string.IsNullOrEmpty(authHeader) || !authHeader.Equals("xyassdfdfdfdf"))
{
throw new DataServiceException(401, "401 Unauthorized");
}
}
謝謝你的幫助。
Andi
你可以請詳細描述一下情況嗎?你在用什麼客戶?如果可能的話,你可以使用Fiddler來抓取一個蹤跡嗎? –
在SaveChanges期間,我收到錯誤消息。選擇沒有問題。在更新期間或在添加新條目時,我會收到上述錯誤。我正在使用silverlight客戶端。 andi –
你可以請隨着callstack發佈異常嗎?也請使用Fiddler並抓取失敗的請求/響應的跟蹤。 –