問題タブ [objectdisposedexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - WCF で「破棄されたオブジェクトにアクセスできません」というエラーが発生する原因は何ですか?
次のコードを使用しています。
ログインは私のコンストラクタです:
そして、私はこのようにサービスを使用しています:
ユーザーが有効なユーザー名とパスワードを入力すると、すべて問題ありません。ユーザーが間違ったユーザー名とパスワードを入力すると、最初の試行では「Not Enter」メッセージが正しく表示されますが、2 回目の試行では次のメッセージが表示されます。
このエラーが発生しないようにコードを修正するにはどうすればよいですか?
c# - 再オープンされたソケットを介して送信しようとしたときの ObjectDisposeException
Socket
( ) を使用Socket A = new Socket...
して送受信しています。- 何かベッドが発生したとき (切断)、古いオブジェクトを閉じたり破棄したりしてから、新しいソケット (
A = new Socket...
) をインスタンス化しようとしています (同じホスト/ポート) - フェーズは
connect()
正常にチェックアウトされ、リモート ホストは接続を認識します。 - 最初のバイトを送信しようとすると、すぐに次のようになります。
System.ObjectDisposedException: 破棄されたオブジェクトにアクセスできません。オブジェクト名: 'System.Net.Sockets.Socket'。System.Net.Sockets.Socket.Send (Byte[] バッファー、Int32 オフセット、Int32 サイズ、SocketFlags socketFlags、SocketError& errorCode) で System.Net.Sockets.Socket.Send (Byte[] バッファー、Int32 オフセット、Int32 サイズ、 System.Net.Sockets.Socket.Send(Byte[] buffer) の SocketFlags socketFlags)
何か案は?
ここで、ソケットを操作するときに、catch 句が をキャッチしSocketException
、reconnect メソッドを呼び出します。
security - リクエスト間の IIS7 統合モード クロージング トークン
IIS7 統合モードに移行していて、問題が発生しました。WindowsAuthentication を使用して認証しますが、WindowsPrincipal への参照を保存して、今後の要求で AD に対して必要に応じて承認できるようにします。IIS 7 統合モードでは、トークンは (要求間で) 閉じられているため、IsInRole を実行しようとすると、破棄された例外が生成されます。このトークンをキャッシュする方法、または WindowsPrincipal の使用を変更して、承認要求ごとに取得するために AD 要求を連続して行う必要がないようにする方法はありますか?
WindowsPrincipal.IsInRole("") - System.ObjectDisposedException: {"安全なハンドルが閉じられました"} からスローされる例外を次に示します。
ありがとう。
.net - BinaryReaderオブジェクトを「使用」しているときにFileStreamオブジェクトが破棄されるのはなぜですか?
次の関数について考えてみます。
FileStreamオブジェクトはパラメーターとして渡され、BinaryReaderはusingステートメントで宣言されます。そのFileStreamオブジェクトを使用しようとすると、この関数を呼び出した後、System.ObjectDisposedExceptionがスローされます。そのFileStreamオブジェクトがBinaryReaderオブジェクトと一緒に破棄されるのはなぜですか?
wpf - WPF DocumentPaginator は、印刷ジョブが完了するまですべての DocumentPages をメモリに保持しますか?
WPF の DocumentPaginator に関する厳密に理論的な質問:
WPF DocumentPaginator クラスを使用して複数ページのドキュメントを印刷する場合、ページネータは、ドキュメントの印刷が完了するまで、印刷ジョブの履歴を介して要求されたすべての DocumentPages をメモリに保持しますか? それとも、印刷ジョブが終了する前に (つまり、メモリを解放するために) 不要になった DocumentPages を破棄しますか? 例外を発生させずに、印刷中に古い/不要な DocumentPages を解放するようにページネーターに手動で指示する方法はありますか?
このたびはご協力いただき、誠にありがとうございました。
c# - System.Timers.Timer が停止した後に Elapsed イベントを発生させないようにするにはどうすればよいですか?
私は次のコードを持っています:
私のタイマーは 250 ミリ秒ごとに経過し、ストリーム コピーの進行状況に関する情報を含むイベントを発生させます。問題は、ストリームがもう開かれていないため、タイマー イベントで ObjectDisposedException がスローされることがあります。
ストリームが破棄された後にタイマーが経過イベントを発生させないようにするにはどうすればよいですか?
c# - Log on the DataContextを設定するとObjectDisposedExceptionが発生するのはなぜですか?
これは私のサービスクラスです:
これは私のテストクラスです
ReSharper 5テストランナーを個別に実行CanGetSomething
して使用すると、正常に動作し、両方のテストに合格します。CanGetSomethingElse
ただし、クラス全体を実行してテストを連続して実行しようとすると、最初のメソッドが合格し、2番目のメソッドが例外をスローします。
System.ObjectDisposedException:閉じたTextWriterに書き込めません。
2番目のテストでどのメソッドを呼び出すかは問題ではないようです。呼び出す_db
と、エラーが発生します。コメントアウトする_db.Log = Console.Error
と例外がなくなり、正常に機能します。
エラーをログに記録して、クラス全体のテストを一度に実行できるようにしたいのですが、なぜこのように動作しているのか理解できません。
何か案は?
c# - このオブジェクトが破棄されているかどうかを確認して ObjectDisposedException をスローするのはいつですか?
を実装するクラスでIDisposable
は、オブジェクトが破棄されているかどうかを確認し、破棄されている場合はスローするのObjectDisposedException
はいつですか? すべてのパブリック メソッドとプロパティ (を除くDispose
) で? 時々?一度もない?
c# - GZipStream.CloseはObjectDisposedExeptionを引き起こします:なぜですか?
誰かがこれを説明できますか?
entity-framework - 「ユーザー」(メンバーシップ) オブジェクトが更新されるたびに ObjectDisposedException がスローされる
- IoC の構造マップを持つエンティティ フレームワークである asp.net mvc 3 を使用しています。
- 独自のカスタム メンバーシップ プロバイダーがあります。
- StructureMapを使用してdbcontextオブジェクトとメンバーシップインスタンスを注入していたときに同じ種類の問題が発生したため、UserRepositoryからこれを削除しました。
- UserRepository には、コンストラクターで初期化される DBContext プロパティが含まれるようになりました。
新しいユーザーが作成/更新されるたびに (これを行うメソッドは、dbcontext オブジェクトを using ステートメントでラップします)、次に dbcontext が参照されると、ObjectDisposedException がスローされます。
私が間違っていることを理解していません。明らかに、メンバーシップ プロバイダー クラスは必要になるたびに userRepository オブジェクトをインスタンス化するわけではなく、ユーザーが更新されると、using ステートメントのためにコンテキストが破棄されます。しかし、これは標準的な慣行だと思いましたか?
どんな助けでも大歓迎です。
編集:
複雑なコードは実際にはありません。セットアップは次のとおりです。
CustomMembershipProvider は、標準のメンバーシップ プロバイダーをオーバーライドします (構成ファイルに詳細が含まれています)。CustomMembershipProvider は、クラス レベルで DBContext プライベート オブジェクトを持つ UserRepository によって実装される IUserRepository を使用する IUserService オブジェクトを使用します。
UserRepository には、次のものがあります。
このコードが実行されると、リクエストは完了です。しかし、ロール情報を取得するか、データベースから (UserRepository クラスで) ユーザーを読み取る別の要求が行われると、ObjectDisposedException がスローされます。この時点で、ユーザーまたはロールに関連するものは何も機能しません。これは、_db 変数が UpdateUser によって破棄された同じ UserRepository クラスを使用しているためです。
最初に StructureMap に DBContext オブジェクト、customMembership オブジェクトなどを解決させましたが、それ以降 StructureMap のマッピングから削除する必要がありました。