线型无效;这通常意味着您在没有截断或设置长度的情况下覆盖了文件;看到使用 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()]
过滤器属性,一切都按预期工作。