C# 在调用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,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连接,但仍然出现了相同的错误 你能找个人帮我处理这个案子吗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
谢谢我怀疑这是API的问题,而不是您的代码的问题,特别是如果它在您第二次进行相同调用时起作用。 我相信API正在使用一个内部字典做一些事情,在您第一次调用它时,它的设置并不完全正确,但是到了第二次,它已经正确地运行了 您是否能够查看/访问调用的API方法的代码 如果是这样的话,最好在应用程序旁边的debug中运行该方法,在该方法的条目上放置一个断点,并在其中的行上单步查看它在做什么,以及它为什么会中断。 如果是您的API,或者您被允许共享此方法的代码,但您自己找不到错误,请发布API方法的代码,我将帮助您找到可能的原因
如果您无法查看代码,我建议您联系API的生产商,如果它是私有的,或者如果它是开源API,共享链接,并提供一个代码示例,说明您的代码是如何进行API调用的,我们可以帮助您进行诊断。我与API开发人员进行了检查,发现他们在修复错误后出现了一些问题,我再也没有收到任何错误。感谢您的回复。不幸的是,我没有访问API代码的权限,但它是一个私有API,我已经要求他们检查代码。您认为这可能是因为某些连接问题,并且API返回的错误与此无关吗?