为什么我得到c#oneshot搜索异常"对象引用未设置为对象的实例"?

时间:2015-08-11 18:43:49

标签: c# search sdk splunk

我最近得到了这个例外,我不明白为什么。 2天前一切都很好,我完全不知道现在发生了什么。 现在我知道这是空的例外,但是再次 - 不明白为什么。它出现在"使用(var stream = service.Oneshot(oneshotQuery,outArgs))"。 service.Oneshot既不是null,也不是outArgs。只有我想到的是" stream",但为什么?

不难看出我在c#中相对较新。

异常MessageBox显示:

  

System.NullReferenceException:未将对象引用设置为实例   一个对象。在Splunk.Service.VersionCompare(String right)at   Splunk.Service.SetSegmentationDefault(Args& args)at   Splunk.Service.Oneshot(String query,Args inputArgs)at   Transkrypter_2.0.Form1.Form1_Load(Object sender,EventArgs e)in   c:... \ Form1.cs:第45行

第45行是"使用(var stream = service.Oneshot(oneshotQuery,outArgs))"

我很感激你的帮助:

 using Splunk;



private void Form1_Load(object sender, EventArgs e)
     {
         try
         {
             var connect = new ServiceArgs
             {
                 Host = "myip",
                 Port = 8089,
                 Scheme = "https"
             };

             Splunk.Service service = new Splunk.Service(connect);

             var oneshot = new Splunk.Client.JobArgs();
             //oneshot.EarliestTime = "2015-08-09 10:25:00";
             //oneshot.LatestTime = "2015-08-09 11:25:00"
             String oneshotQuery = "search * | head 10";

             var outArgs = new JobResultsArgs
             {
                 OutputMode = JobResultsArgs.OutputModeEnum.Xml,
                 Count = 0,
             };

             using (var stream = service.Oneshot(oneshotQuery, outArgs))
             {
                 using (var rr = new ResultsReaderXml (stream))
                 {
                     foreach (var @event in rr)
                     {
                         richTextBox1.Text += "Event:" + Environment.NewLine;
                         foreach (string key in @event.Keys)
                         {
                             richTextBox1.Text += "   " + key + " -> " + @event[key];
                         }
                     }
                 }
             }

             button1.BackColor = Color.Green;
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.ToString() ,ex.Message.ToString());
         }

另外我想提一下,这是第二个应用程序,只是为了测试这个错误,就像在我的主应用程序中一样,发生同样的异常。

1 个答案:

答案 0 :(得分:0)

@NigelK是对的。我忘记在service.Login("login", "password");之后添加Splunk.Service service = new Splunk.Service(connectArgs); 我发现这一点,但上面的@ halr9000代码让它变得更加明显 - 愚蠢的我。一个人仍然是个谜团:它以前的效果如何...;)所以是的,主题已经关闭,非常感谢大家的帮助!