0

CRUD 操作には WCF Data Service を使用しました。1 つのリモート サービスと多数のクライアント (コンピューター) があります。一部のクライアントは、すべての編集操作でエラーを受け取りました (コンテキストにはエンティティがあり、現在それを編集しています)。返された例外には、次のメッセージが含まれています:「ブラウザが未知のメソッド (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 など) のロックに関する問題を解決しました。決定は、トンネリングを使用するクライアント サービス プロキシ クラスの 1 つの C# 行に行き着きました。

 docService.UsePostTunneling = true;
于 2013-08-05T08:08:16.113 に答える