Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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# 在调用WCF API时,索引超出了数组的界限_C#_Asp.net_.net_Wcf_Api - Fatal编程技术网

C# 在调用WCF API时,索引超出了数组的界限

C# 在调用WCF API时,索引超出了数组的界限,c#,asp.net,.net,wcf,api,C#,Asp.net,.net,Wcf,Api,我已经用ASP.netC、.Net Framework 4.0开发了一个web应用程序,在应用程序的某些部分,我正在调用API以获取一些信息。我注意到对API的一些调用失败,我得到了以下错误: 索引超出了数组的边界 当我检查堆栈跟踪时,我看到: 在System.Collections.Generic.Dictionary2.InsertTKey、TValue、Boolean add 在System.Collections.Generic.Dictionary2.set_ItemTKey,TVal

我已经用ASP.netC、.Net Framework 4.0开发了一个web应用程序,在应用程序的某些部分,我正在调用API以获取一些信息。我注意到对API的一些调用失败,我得到了以下错误:

索引超出了数组的边界

当我检查堆栈跟踪时,我看到:

在System.Collections.Generic.Dictionary2.InsertTKey、TValue、Boolean add

在System.Collections.Generic.Dictionary2.set_ItemTKey,TValue 价值观

在Navitaire.Ncl.Validation.ValidationManager.getValidationAttributesMemberInfo mi中,布尔值和跳过

在Navitaire.Ncl.Validation.ValidationManager.validateObject declaringObject中,对象值,MemberInfo mi,列表1结果

在Navitaire.Ncl.Validation.ValidationManager.ValidateObject对象中

在Navitaire.Ncl.ServiceModel.ParameterValidationSpector.BeforeCallString operationName中,对象[]输入

在Navitaire.Ncl.ServiceModel.Remoting.BoilerplateSinkBase.invokebeeforecallinspectorstatedatastatedata、RemotingMessage和message中

位于Navitaire.Ncl.ServiceModel.Remoting.BoilerplateServerSink.ProcessMessageIServerChannelSinkStacksinkStack、IMessage requestMsg、ITransportHeaders requestHeaders、Stream requestStream、IMessage&responseMsg、ITransportHeaders& 响应负责人、流和响应团队

在System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessageIServerChannelSinkStack sinkStack、IMessage requestMsg、ITransportHeaders requestHeaders、Stream requestStream、IMessage&responseMsg、ITransportHeaders& 响应负责人、流和响应团队

我在catch异常部分设置了一个断点,这样每当我出现错误时,应用程序就会停止,我就可以读取异常。我注意到,如果在这一刻我再次调用API,将光标移动到API调用行,它就可以正常工作。这意味着我传递给API的参数没有问题

我试着在三种不同的环境下运行这个应用程序,使用完全不同的网络和不同的internet连接,但仍然出现了相同的错误

你能找个人帮我处理这个案子吗


谢谢

我怀疑这是API的问题,而不是您的代码的问题,特别是如果它在您第二次进行相同调用时起作用。 我相信API正在使用一个内部字典做一些事情,在您第一次调用它时,它的设置并不完全正确,但是到了第二次,它已经正确地运行了

您是否能够查看/访问调用的API方法的代码

如果是这样的话,最好在应用程序旁边的debug中运行该方法,在该方法的条目上放置一个断点,并在其中的行上单步查看它在做什么,以及它为什么会中断。 如果是您的API,或者您被允许共享此方法的代码,但您自己找不到错误,请发布API方法的代码,我将帮助您找到可能的原因


如果您无法查看代码,我建议您联系API的生产商,如果它是私有的,或者如果它是开源API,共享链接,并提供一个代码示例,说明您的代码是如何进行API调用的,我们可以帮助您进行诊断。

我与API开发人员进行了检查,发现他们在修复错误后出现了一些问题,我再也没有收到任何错误。

感谢您的回复。不幸的是,我没有访问API代码的权限,但它是一个私有API,我已经要求他们检查代码。您认为这可能是因为某些连接问题,并且API返回的错误与此无关吗?