ワイヤ タイプが無効です。これは通常、切り詰めたり長さを設定したりせずにファイルを上書きしたことを意味します。Protobuf-net の使用を参照してください。未知のワイヤ タイプに関する例外が突然発生しました。
[Authenticate()]
ここでフィルターを DTO に追加しました。
[RestService("/tr/file/")]
[RestService("/tr/file/{Path*}")]
[DataContract]
[Authenticate()]
public class File
{
[DataMember(Order = 1)]
public string Path { get; set; }
}
そして、私はそのエラーを受け取ります。認証にどのように影響するかについてのヒントなしで、提案されたリンクを読みました。私の最初の考えは、ユーザー名/パスワード フィールドに(Order=N)
. ProtoBufServiceClient
エラーとタグで明らかなはずのを使用しています。
以前にこれに遭遇した人はいますか?修正として何を試す必要がありますか?
これが私の Get() サービスメソッドです:
public override object OnGet(TRServiceLib.Types.File request)
{
if (string.IsNullOrEmpty(request.Path))
throw new ArgumentNullException("File path cannot be empty.");
string path = System.IO.Path.Combine(this.Config.RootDirectory, Utils.GetSafePath(request.Path));
System.IO.FileInfo file = new System.IO.FileInfo(path);
if (!file.Exists)
throw new System.IO.FileNotFoundException(request.Path);
return new FileResponse()
{
Name = file.Name,
Contents = System.IO.File.ReadAllBytes(path)
};
}
PS: [Authenticate()]
filter 属性がなくても、すべてが意図したとおりに機能します。