0

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

服务有一个初始化方法:

        // 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:使用代理服务器的原因。研究继续……

4

1 回答 1

0

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

 docService.UsePostTunneling = true;
于 2013-08-05T08:08:16.113 回答