0

ASP.Net 4.0とC#Webサービスを使用しています。これは、開発や他のアプリケーション(SkypeボットおよびWindowsフォーム)で正常に機能しているC#ライブラリも利用します。

JQueryを使用してJSONを介してWebサービスと通信しています。開発中、これは正常に機能しています。本番環境では、部分的に機能しています。一部のコマンドを使用できますが、他のコマンドは単にこのエラーをスローします。

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

これからどこから始めればいいのかわかりません。コードはprodでのみ発生するため、ステップスルーできません。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

問題は、ログインが必要なURLを呼び出すためにWebClientを使用していたことでした。ドメイン資格情報を使用してアプリプールを設定した後、ログインのプロンプトが表示されることなくページを呼び出すことができました。

ページを呼び出すと、リストにデータを入力してループすることができました。空のリストをループしていたため、上記のエラーがスローされました。

于 2012-10-04T23:18:50.997 に答える