問題タブ [system.net.webexception]
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.
asp.net - System.net.webexception を取得する Active Directory 呼び出し
エンドポイントを介して Active Directory サーバーと通信する asp .net プログラムがあります。3つの手術を行っています。GetAllActiveDirectoryUsers()、GetAllActiveDirectoryGroups()、SaveUserToGroupMapping()
GetAllActiveDirectoryUsers() では、すべての UserPrincipal オブジェクトを AD から取得し、その情報をデータベース テーブルに入力しています。正常に動作します
GetAllActiveDirectoryGroups() では、すべての GroupPrincipal オブジェクトを AD から取得し、その情報をデータベース テーブルに入力しています。
SaveUserToGroupMapping() では、すべての userPrincipal オブジェクトを取得しており、ユーザー プリンシパルごとに UserPrincipal.GetGroups() を見つけています。ほぼ 6500 のユーザー プリンシパル オブジェクトがあり、各 userPrincipal オブジェクトに対してグループ プリンシパルを実行するには、ある程度の時間がかかります。すべての userprincipal と userPrincipal.GetGroup() を取得するには、約 65 分かかります。 突然壊れる
私の Web アプリケーションは Web サーバー ボックスにデプロイされ、上記のユーザー プリンシパルとグループ プリンシパルのコード スニペットはアプリ サーバー ボックスにあります。Active Directory サーバーを呼び出すアプリケーション サーバーです。Web アプリケーションには、クリックするボタンが 1 つあるだけで、順次コードが実行されます。
このコードの周りで例外をキャッチしてみました。このコードは、特定の数のユーザーに対しては正常に機能し、突然、以下に示すように例外をスローします: これは、Web サーバーからの例外ログです。アプリ サーバーに例外ログがありません。
どこに問題があるのか わかりません。ADサーバーまたはWebサーバーまたはアプリサーバーが原因ですか。ポイントは、コードの実行がどの程度成功したかを知るために他のログを書いていることです。コード スニペットのループが 1 時間ほど正常に動作し、その後突然失敗することがわかります。
これをデバッグしたり、問題が何であるかを分析したりするのに何か助けていただければ幸いです。
c# - リモート パーティがトランスポート ストリームを閉じたため、認証に失敗した内部例外による HttpWebrequest の失敗
C#、.Net 4.5 を使用して、リモート サーバーで HttpWebRequest を介して Web 要求を送信しようとしています。以下のコードを参照してください。いくつかのフォーラムで提案された解決策のほとんどを試しましたが、常に同じエラーが発生します。以下のスタック トレースを参照してください。request.GetReponse() メソッドを呼び出すと、エラーがスローされます。
追加情報、基本的に、リモート サーバーにインストールされている vmware の vCenter コンポーネントの reloadSslCertificate 関数を呼び出そうとしています。現在、エラーは vCenter 5.5 でのみ発生します。バージョン 5.1 以下では問題なく動作します。
例外: System.Net.WebException: 基になる接続が閉じられました: 送信時に予期しないエラーが発生しました。---> System.IO.IOException: リモート パーティがトランスポート ストリームを閉じたため、認証に失敗しました。System.Net.Security.SslState.StartReadFrame (Byte[] バッファー、Int32 readBytes、AsyncProtocolRequest asyncRequest) で System.Net.Security.SslState.StartReceiveBlob (Byte[] バッファー、AsyncProtocolRequest asyncRequest) で System.Net.Security.SslState. System.Net.Security.SslState.StartSendBlob(Byte[] 着信、Int32 カウント、AsyncProtocolRequest asyncRequest) での CheckCompletionBeforeNextReceive (ProtocolToken メッセージ、AsyncProtocolRequest asyncRequest) System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst、Byte[] バッファー、AsyncProtocolRequest) asyncRequest) System.Net.Security.SslState で。
前もって感謝します。
c# - Web リクエストを再発行するにはどうすればよいですか? Webclient を再作成する必要がありますか?
次のコードは、例外が発生したときに while ループでスタックします。これは、GetResponse がデータをキャッシュしているためです。
フィドラーによると、最初のリクエストが発行された後のデータはありません。
「更新」の問題を解決するために Web クライアントを再作成することはベスト プラクティスですか?
c# - 例外をスローせずに HTTP アドレスが応答しているかどうかを確認する方法は?
WebClient と HttpWebRequest は、使用できないアドレスに接続すると WebException をスローします。この場合、例外のスローを回避する BeginGetResponse を使用するいくつかの手法を見てきました。しかし、彼らは Async キーワードに大きく依存しています。例外をスローせず、.NET 3.5 のみを使用して HTTP サービスをチェックする方法はありますか?
c# - GetRequestStream() が WebException タイムアウトを返す ... ただし一部のマシンのみ
最初の「using」で例外がスローされます:
using (var os = firstRequest.GetRequestStream())
私の推測では、サーバーによって開始されたssl信頼の問題に関係していると思いますが、それが本当なら、2台が正常に動作し、2台がその例外をスローしている4台のwindows 7 proマシンの違いよりも、
例外の詳細:
どうなり得るか ?
asp.net-web-api - WebClient.UploadFile() から送信されたファイルを受け取るにはどうすればよいですか?
この単純なテストが機能したため (本体に文字列を渡す):
サーバーコード:
クライアントコード:
...次に、さらに一歩進めようとしました(本当に必要なことに向けて-文字列ではなくファイルを送信します); サーバーコードを次のように変更しました。
...そしてこれに対するクライアントコード:
...しかし、それは実行時に次のように死にます:
System.Net.WebException は処理されませんでした HResult=-2146233079 Message=リモート サーバーがエラーを返しました: (415) サポートされていないメディア タイプ。
では、この方法でアップロードされたファイルを受け取るにはどうすればよいでしょうか? 必要なメディアの種類と指定方法は?
アップデート
最終的にファイル、または少なくともファイルの内容を送信する必要があるため、この SO 質問/回答を見つけ、コードを次のように変更しました。
...そして、byteDataが正しく割り当てられていることを示していますが、サーバーには何も送信されていないようです-サーバーの「値」プロパティ:
...メソッドが呼び出されたときは空のバイト配列です。
[FromBody] を削除しようとしましたが、役に立たず (変更なし)、[FromUri] に変更すると (うまくいくとは思いませんでしたが、ひばりで試してみました)、WebException でクラッシュしました。
では、サーバーにバイト配列を受け入れ/認識/受信させるにはどうすればよいですか?