問題タブ [ssh.net]
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 - IIS 環境で ssh.net との複数の接続を開くことができません
ASP.NET アプリケーションの一部として、ssh.net ライブラリを使用して別のサーバーと通信しています。
TCPView を使用すると、送信サーバーへの SSH 経由の接続が一度に 1 つしかないことに気付きました。IIS サーバーは、期待どおりに Web 要求ごとに 1 つの SSH 接続を開きません。一度に処理できるリクエストは 1 つだけであり、新しいリクエストが開始される前に完了する必要があるため、これは大きなパフォーマンスの問題を引き起こしています。その間、他のリクエストは待機します。
ssh.net ライブラリまたは IIS サーバーが必要な数の接続を開くことを許可するにはどうすればよいですか?
c# - sshnet ライブラリを使用した SFTP アップロード - 接続の問題の処理
Renci の sshnet ライブラリを使用すると、ファイルのアップロード中に接続の問題を処理できません。
UploadFile にブレークポイントを設定し、接続を無効にして実行すると、その行でハングアップします。これらは低速の接続では大きなファイルになる可能性があるため、OperationTimeout を追加するのは困難です。
また、これは一貫した接続で何度もうまく機能します。何か案は?ありがとう!
c# - SSH.NET Upload Multiple files が非同期的に例外をスローする
私はアプリケーションを作成しています
CSV
ファイルを処理し、JObject
ファイル内のレコードごとに作成しCSV
、JSON を txt ファイルとして保存し、最後に- これらすべての JSON ファイルを
SFTP
サーバーにアップロードします
3点目で無料のライブラリを探した結果、使うことにしましたSSH.NET
。
アップロード操作を非同期で実行するために、次のクラスを作成しました。
このUploadDocumentAsync
メソッドは を返すTPL Task
ので、それを呼び出して複数のファイルを非同期でアップロードできます。
UploadDocumentAsync
別のクラスにある次のメソッドからこのメソッドを呼び出します。
ProcessJsonObjects
CSV ファイルの結果は数千の JSON レコードになりますが、これらを少なくとも 50 のバッチでアップロードしJObject
たいと考えています。しかし、メソッドclient.Connect();
の行で次のエラーが表示されます。UploadDocumentAsync
バッチ サイズを 2 に減らすと問題なく動作しますが、次のエラーが発生することがあります。
同時に多くのファイルをアップロードできる必要があります。または、IIS または SFTP サーバーがこのタイプの操作に構成を必要とするかどうか、およびその内容を教えてください。
私は何を間違っていますか?あなたの助けに感謝します。
c# - SSH.NET を使用してダウンロードするとファイルが空になる
SSH.NET を使用して SFTP からファイルをダウンロードしています。これが私のコードです。
問題は、csv であるファイルがダウンロードされますが、内部にデータが含まれていないことです。remoteFile パスも変更しましたが、それでもファイルはダウンロードされ、内部には null データが含まれています。を使用してファイルが存在するかどうかを確認しようとしました
remoteFileName を で変更しても、常に true を返します"pp"
。
私が間違っていることを誰かが助けてくれますか? または、SFTP サーバーからファイルをダウンロードする別のライブラリをお勧めします。WinSCP を試しましたが、ホストキー エラーが発生するためSshHostKeyFingerprint
、サーバーチュートリアルのガイドに従って正しいパスを渡そうとしました。それでもホストキーエラーが発生します。SFTPからファイルをダウンロードするだけの簡単なライブラリはありますか?
powershell - Renci SSH.NET - スクリプトが無期限にハングする
コードは次のとおりです-最後のコマンドの後にハングします:
上記の SSH 経由で発行されたコマンド - STATISTICS show-periodic
- Netapp Storage SAN への SSH セッションに対して手動で発行された場合 - データの表示を開始し、永久に実行されます - 再度プロンプトは表示されません -CTRL-C
このコマンドを終了するには手動で発行する必要があり、その後 CLI を受け取りますSSH セッションでプロンプトを表示して、別の目的のコマンドを発行します。これが、コマンドが発行されずにコマンドがプロンプトに戻らないため、powerscriptがハングする理由だと思いますCTRL-C
。
上記の最後のコマンドに続いて (目的のスリープ時間の後)発行したいと思い$SshCommand = $SshClient.RunCommand('CTRL-C')
ますが、powershell スクリプトは制御を取り戻しません。
コマンドの後に制御を取り戻し、必要な時間間隔の後にコマンドをSSHセッションにstatistics...
発行できる方法があるかどうか疑問に思っています。CTRL-C
c# - c# を使用して ssh.net で別のバッチ スクリプトを実行する方法
ssh.net を使用して別のコンピューターに接続するときにバッチ スクリプトを実行したい
うまくいかないようです:
のようなコマンドを接続して実行shutdown
できますが、バッチ ファイルを実行できません。
私は何をすべきか?
c# - C# の他のメソッドから作成されたオブジェクトにアクセスする
同じユーザー/パス..ectを入力して、パテ+ Firefoxのsocks4 / chromeのsocks4プラグインを使用する代わりに、動的トンネリングを単一のプログラムに統合するac#SSHトンネリングプログラムを作成しています。Renci.SSHNet ライブラリを使用しています。
私の質問は次のとおりです。新しい SshClient オブジェクトを作成するときに、後で接続を切断するボタンからその接続を切断できるようにしたいのですが、while(isConnected) if (!addedToList) addtolist という別のスレッドを実行できるようにしたいのです..問題は、同時に実行されているさまざまな sshClient オブジェクトにアクセスする方法がわからないことです。異なるホストへの 3 つのオープン接続があるとします。現在の接続からホスト IP を選択した場合、その IP アドレスを SshCLient 接続に接続してから sshClient.Disconnect() を実行する方法が必要です。sshClient.ConnectionInfo.Host.ToString() を使用して文字列をそれに一致させることができることを認識していますが、別の方法 ([接続を強制終了] ボタンをクリック) を使用している場合、192.168 のホスト IP を一致させる方法がわかりません。 1.1 をそのホストに接続されている sshClient に。
弱い参照を調べましたが、sshClient が 1 つしかない場合にのみ機能するようです。現在作成されている SshClient オブジェクトにアクセスし、それを Host ip プロパティに一致させる方法があれば、それは機能します。Googleでこれを見つけることができません。
deviceIpString にちなんで名付けられたプライベート オブジェクト変数 SshClients を作成するための巧妙な方法を計画することを考えましたが、別の変数の内容 (String) にちなんで名付けられた変数を作成する方法がわかりませんでした。そのような: