代码之家  ›  专栏  ›  技术社区  ›  The Unique Paul Smith

当搜索包含“*”时,OneDrive搜索引发未知错误

  •  1
  • The Unique Paul Smith  · 技术社区  · 7 年前

    This is a copy paste from my original posted github issue

    示例代码段:

    var graphserviceClient = new GraphServiceClient(
             new DelegateAuthenticationProvider(
                 (requestMessage) =>
                 {
                     requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", ADALAuth.CurrentAccessToken);
    
                     return Task.FromResult(0);
                 }));
    
                var drive = graphserviceClient.Me.Drive.Request().GetAsync().Result;
                var collection = graphserviceClient.Me.Drive.Search("*.xyz").Request().GetAsync().GetAwaiter().GetResult();
    

    返回的错误消息为:

    Code: UnknownError
    Message: A potentially dangerous Request.Path value was detected from the client (*).
    
    Inner error
    

    堆栈跟踪:

       at Microsoft.Graph.HttpProvider.<SendAsync>d__19.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at Microsoft.Graph.BaseRequest.<SendRequestAsync>d__36.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at Microsoft.Graph.BaseRequest.<SendAsync>d__32`1.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at Microsoft.Graph.DriveSearchRequest.<GetAsync>d__2.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
       at _Default.Page_Load(Object sender, EventArgs e) in e:\Profile\Documents\Visual Studio 2015\WebSites\AzureWebApp\Default.aspx.cs:line 33
       at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
       at System.Web.UI.Control.OnLoad(EventArgs e)
       at System.Web.UI.Control.LoadRecursive()
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Marc LaFleur    7 年前

    在后台,Graph会根据您的帐户类型将您的请求路由到两个不同的系统。因此,这两个系统之间存在一些细微的差异。

    无论如何,你不应该需要 * *.xyz .xyz 被翻译成 *.xyz*