获取错误错误:字典中没有给定的密钥.在生产中

Sug*_*ime 0 c# windows asp.net iis web-services

我正在使用ASP.Net 4.0 w/C#Web服务.这也使用了一个C#库,它在开发和其他应用程序(Skype机器人和Windows窗体)中运行良好

我正在使用JQuery通过JSON与Web服务进行通信.在开发中,这很好.在生产中,它部分起作用.我可以使用一些命令,但其他命令只会抛出此错误:

Error: The given key was not present in the dictionary.
Run Code Online (Sandbox Code Playgroud)

我不知道从哪里开始.我无法单步执行代码,因为它只发生在prod中.我检查了IIS日志,并且每个请求都获得了200状态,因此它似乎是应用程序内部的内容.任何想法从哪开始呢?

Eri*_* J. 5

该错误表明服务器端代码正在尝试使用不在该字典中的密钥来访问字典.

我建议修改代码以围绕所有字典访问进行错误处理.处理错误时,记录尝试从字典中读取的密钥.

记录异常详细信息时,最好记录所有可用信息.

Exception.ToString()
Run Code Online (Sandbox Code Playgroud)

完成这一点.

  • 调用`Exception.ToString()`可能更好:它为您提供了上述所有信息,在某些情况下更多(例如`FileNotFoundException`包括适当的FusionLog). (2认同)