格式错误的请求(WCF数据服务)

时间:2013-07-30 13:05:41

标签: c# wcf rest service wcf-data-services-client

我使用WCF数据服务进行CRUD操作。我有一个远程服务和许多客户端(计算机)。某些客户端在所有编辑操作上重新发生错误(上下文有实体,我们现在编辑它)。返回的异常包含下一条消息:“您的浏览器发送了一个使用未知方法的请求(MERGE)”。所有客户端都使用Windows 7和Framework 4.5。这可能是什么原因?

服务有一个初始化方法:

        // This method is called only once to initialize service-wide policies.
    public static void InitializeService(DataServiceConfiguration config)
    {
        // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
        // Examples:
        config.UseVerboseErrors = true;
        config.SetEntitySetAccessRule("doc", EntitySetRights.All);
        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
    }

UPD1:当在管理员帐户下运行客户端应用程序(即管理员可以编辑实体且没有错误)时,发现错误消失。也许是ClickOnce部署中的问题。

UPD2:使用代理服务器的原因。研究继续......

1 个答案:

答案 0 :(得分:0)

解决了代理服务器(http://msdn.microsoft.com/en-us/library/dd541471.aspx)对WCF数据服务和HTTP请求(如HTTP MERGE)锁定的问题。 决定使用隧道传输到客户端服务代理类的一个C#行:

 docService.UsePostTunneling = true;