Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# JsonConvert使我的Windows服务失败_C#_Asp.net Web Api_Windows Services_Json.net - Fatal编程技术网

C# JsonConvert使我的Windows服务失败

C# JsonConvert使我的Windows服务失败,c#,asp.net-web-api,windows-services,json.net,C#,Asp.net Web Api,Windows Services,Json.net,也许这是一个愚蠢的问题,但我从今天早上就开始面对它。 我正在用C编写一个windows服务。在timer Appead事件处理程序中,我向一个Web API发出请求,该API返回一个Json,如下所示: void OnTimerElapsed(object sender, ElapsedEventArgs e) { List<Anomalia> anomalie = null; TimeIntervalConfigurationModel t

也许这是一个愚蠢的问题,但我从今天早上就开始面对它。 我正在用C编写一个windows服务。在timer Appead事件处理程序中,我向一个Web API发出请求,该API返回一个Json,如下所示:

 void OnTimerElapsed(object sender, ElapsedEventArgs e)
    {
        List<Anomalia> anomalie = null;
        TimeIntervalConfigurationModel timeConf = new XmlConfigurationReader.XmlConfigurationHelper().GetTimeIntervalConfiguration();
        if (CanNotify(timeConf))
        {
            try
            {
                //ricerca anomalie
                eventLog.WriteEntry("Contact service: ricerca anomalie....");
                WebRequest requestUrl = WebRequest.Create(urlConfig.BaseUrl + urlConfig.Anomalia);
                Stream objStream = requestUrl.GetResponse().GetResponseStream();
                StreamReader objReader = new StreamReader(objStream);
                String sLine = "";
                sLine = objReader.ReadToEnd();
                anomalie = JsonConvert.DeserializeObject<List<Anomalia>>(sLine);
                //cut
            }
            catch (Exception ex)
            {
                //cut
            }
        }
    }
现在我面临一个非常奇怪的行为:如果我保持JsonConvert.DeserializeObject>sLine;指令处理程序方法不执行,如果我删除它,方法将正常激发。这个问题不是由于数据格式造成的:如果我尝试反序列化空字符串或空json数组,则该方法不会执行。

刚刚找到了解决方案。 问题是我安装了来自解决方案的Nuget软件包->管理来自解决方案的Nuget软件包。 在此之前,该软件包是通过Nuget直接安装的。 打开项目的packages.config文件时,我发现以下行:

<package id="Newtonsoft.Json" version="4.5.11" targetFramework="net40-Client" />
在删除它并通过Nuget重新安装包之后,我在packages.config中找到了这一行

<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net40-Client" />

显然,问题是由于错误的版本号造成的。在阅读了这个答案后,我找到了解决方案:

sLine的输入是什么?[{\IdAnomalia\:1,DataAnomalia\:\2015-09-18T00:00:00\,\DataSegnalazione\:\2015-09-18T15:27:38.85\,\DataPresavision\:\0001-01-01T00:00:00\,\DataRisoluzione\:\0001-01-01T00:00:00\,\Task\:{\IdTask \:1,…..等等。我无法全部发布,其中有保留数据。听起来像是与引用相关的问题:如果我进入即时窗口,并尝试编写JsonConvert…。找不到命名空间。您需要即时窗口中的完整命名空间。是否也部署了Newtonsoft.Json.dll?事件日志中是否有任何消息dll已部署。在即时窗口中,我收到的名称Newtonsoft在当前上下文中不存在,或者类似的内容,如果我使用完整的名称空间,我只是从意大利语翻译过来