0

我正在使用带有 C# Web 服务的 ASP.Net 4.0。这也利用了一个 C# 库,该库在开发和其他应用程序(Skype bot 和 Windows 窗体)中运行良好

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

Error: The given key was not present in the dictionary.

我不确定从哪里开始。我无法单步执行代码,因为它只发生在产品中。我检查了 IIS 日志,每个请求都获得 200 状态,所以它似乎是应用程序本身内部的东西。任何想法从哪里开始?

4

3 回答 3

5

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

我建议修改代码以对所有字典访问进行错误处理。处理错误时,记录试图从字典中读取的键。

记录异常详细信息时,明智的做法是记录所有可用信息。

Exception.ToString()

做到这一点。

于 2012-10-04T17:07:41.250 回答
1

您可以从您正在使用的 sqlsrver 队列中删除所有队列消息,

declare @c uniqueidentifier
while(1=1)
begin
    select top 1 @c = conversation_handle from dbo.yourqueuenqme
    if (@@ROWCOUNT = 0)
    break
    end conversation @c with cleanup
end

之后它将起作用。

于 2015-02-02T09:45:46.780 回答
0

问题是我使用 WebClient 调用需要登录的 URL。我使用我的域凭据设置了我的应用程序池,然后我能够在没有提示登录的情况下调用该页面。

一旦调用该页面,我就能够填充一个列表并循环遍历它。上面的错误被抛出,因为我正在循环一个空列表。

于 2012-10-04T23:18:50.997 回答