0

WCFRestを使用してロギングサービスを作成しようとしています。これは次のようになります。

[ServiceContract]
public interface ILoggingService
{
    [OperationContract, WebGet(UriTemplate = "/LogError?m={message}")]
    void Log(string message);
}

かなりの量のテキストをログに記録できるように、構成ファイルの制限を増やしました。ただし、この制限を超えると、サービスはメッセージを受け入れません。これまでのところ、テキストが制限を下回っていることを確認しましたが、これは適切な回避策ではありません。WCFRESTでこの問題を回避するにはどうすればよいですか。

アップデート

さらに調査した後、私はこのようなものになってしまうはずですか?

[ServiceContract]
public interface ILoggingService
{
    [OperationContract, WebGet(UriTemplate = "/LogError?m={message}", Method = "POST")]
    void Log(string message);
}

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL);
request.Method = "POST";
request.ContentType = "text/plain";
4

2 に答える 2

1

GETメソッドを使用しないことをお勧めします。実行している操作は書き込みであり、読み取りではありません。POSTを使用する場合は、メディアタイプtext/plainを使用してエンティティ本体を送信できます。そうすれば、URLの長さに制限されません。

于 2011-04-01T11:16:06.517 に答える
1

http投稿の場合、署名は次のようになります。

    [OperationContract]
    [WebInvoke(UriTemplate = "LogError",Method="POST")]
    void Log(string message);

投稿を使用すると、URLではなくhttpリクエストでデータが送信されます。

Http getリクエストは、データの読み取り、作成のための投稿、更新のための配置、削除のための削除にのみ使用する必要があります。

http://en.wikipedia.org/wiki/Representational_State_Transfer

于 2011-04-01T13:33:22.477 に答える