移动主机时缺少Content-Type标头值

时间:2013-03-19 14:46:56

标签: wcf-data-services odata

我已经下载并使用了DataServiceProvider示例,非常基本和常见的“hello world”(具有ProductCategory实体的那个)。我正在使用最新的Microsoft.Data.Services包。

我已经建立了一个客户端来对抗它并且它有效。 GET请求会返回Category,我会对其进行修改并致电SaveChanges()进行更新。

当我决定将代码从“hello world”虚拟环境移动到IIS上的现有大型应用程序时,更新停止工作。我在谈论相同的代码 - 客户端和服务器!

GET工作正常,但SaveChanges()响应会抛出一个异常:

<?xml version="1.0" encoding="utf-8"?><m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><m:code /><m:message xml:lang="en-US">Content-Type header value missing.</m:message></m:error>

虽然我可以在提琴手中清楚地看到我确实发送了Content-Type标题: "Content-Type: application/atom+xml"

var sessionedUri = new Uri("http://myapp/odata.svc/", UriKind.Absolute);
        _oDataContext = new DemoService(sessionedUri);

        _oDataContext.MergeOption = MergeOption.OverwriteChanges;
        Category cate = _oDataContext.CreateQuery<Category>("Categories").FirstOrDefault();

        _oDataContext = new DemoService(sessionedUri);
        cate.Name = "somethin";
        _oDataContext.AttachTo("Categories", cate);
        _oDataContext.UpdateObject(cate);
        _oDataContext.SaveChanges();

1 个答案:

答案 0 :(得分:0)

正如上面的评论所说:

Httphandlers介入通信,虽然我发送了它,但可能会删除标题。 谢谢Eric