問題タブ [transparentproxy]
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# - キューイングメソッドの呼び出し-どのようにアイデアがありますか?
私は非常に非同期のアプリケーションを作成します。
BeginInvoke / EndInvokeと同様に、メソッド呼び出しをキューに入れる方法を探していますが、自分のキューにあります。その理由は、スレッドプールを使用して独自の最適化されたメッセージキューシステムを使用していると同時に、すべてのコンポーネントがリクエストでシングルスレッドであることを確認していることです(つまり、1つのスレッドがコンポーネントのメッセージのみを処理します)。
たくさんのメッセージが行き来しています。限られた用途では、多くの管理呼び出しを行うためだけに独自のパラメーター、メソッドのラッピング/アンラッピングを定義するのではなく、パラメーターを使用してメッセージ呼び出しをキューに入れることができるようにしたいと思います。また、常にキューをバイパスする必要はありません。また、送信サービスが他のサービスの応答を待機することを絶対に望んでいません。
メソッド呼び出しを傍受する方法を知っている人はいますか?これにTransparentProxy/Virtual Proxyを利用する方法はありますか?;)ServicedComponent?私はこれをできるだけオーバーヘッドを少なくしたいと思います;)
.net - 透過プロキシしか知らない場合に RealProxy を取得する方法
たとえば、WCF によって生成されたものなど、透過的なプロキシがあります。
透過プロキシから RealProxy を取得するにはどうすればよいですか?
ipv6 - IPV6 の TPROXY
IPV6 用の独自の NAT モジュールがあります。TPROXY サポートが必要です。ダウンロードできるパッチはありますか?2.6.32-71 カーネルを使用しています。
linux - TPROXY - 正確な宛先/リモート IP アドレスを取得する
Linux カーネルで最新の TPROXY を使用して、リモート/宛先マシンの IP アドレスを取得するにはどうすればよいですか? ローカル/ソース エンドポイントが から返されると想定していますaccept()
。
http-headers - HTTP接続の配置に関する実際の問題:最後にヘッダー
ヘッダーの最後にHTTPConnection:フィールドを配置することに関する既知の問題はありますか?
標準(RFC2616、セクション4.2)から:
最初にgeneral-headerフィールド(を含む
Connection
)を送信し、次にrequest-headerまたはresponse-headerフィールドを送信し、最後にentity-headerフィールドを送信することをお勧めします。
Connection
HTTPヘッダーの「グッドプラクティス」に違反した場合、私はビットを取得するつもりですか?
wcf - インターフェイスのインスタンスを透過プロキシとして返すことができる ASP.NET アプリケーション内で WCF Web サービスを作成する方法
私のユースケース:
- 既に ASP.NET アプリケーションが動作しています
- そのアプリケーションの一部として新しい Web サービスを実装したい
- ASP.NET Web サービス (*.asmx)ではなく、WCF サービス (*.svc) を使用することになっています。
GetInterface()
サービスには、インターフェイスのインスタンスを返す1 つの操作が必要です。このインスタンスはサーバー上に存在する必要があり、クライアントにシリアライズされません。そのインターフェイスで呼び出されるメソッドは、サーバー上で実行する必要があります。
これが私が試したことです(どこが間違っていたか教えてください):
これをテストするために、新しいASP.NET Web アプリケーションプロジェクトを作成しました
ServiceSide
。そのプロジェクト内で、「追加→新しい項目」を使用してWCF サービスを追加しました。私はそれを呼んだ
MainService
。これにより、MainService
クラスとIMainService
インターフェイスの両方が作成されました。ここで、クライアントとサーバー間で共有されるインターフェイス宣言のみを含む、新しいクラス ライブラリプロジェクトを作成しました。
/li>ServiceWorkLibrary
に戻って、クラスでの実装だけでなくインターフェイス
ServiceSide
のデフォルトDoWork()
メソッドも置き換え、共有の単純な実装も追加しました。それらは次のようになります。IMainService
MainService
IWorkInterface
このアプリケーションを実行すると、ブラウザに次のようなデフォルトの Web サービス ページが表示されるという意味で「動作」します。
サービスを作成しました。
このサービスをテストするには、クライアントを作成し、それを使用してサービスを呼び出す必要があります。これは、コマンド ラインから次の構文で svcutil.exe ツールを使用して行うことができます。
これにより、クライアント クラスを含む構成ファイルとコード ファイルが生成されます。2 つのファイルをクライアント アプリケーションに追加し、生成されたクライアント クラスを使用してサービスを呼び出します。例えば:
それではクライアントに。別の Visual Studio で、新しいソリューションで呼び出される新しいコンソール アプリケーションプロジェクトを作成しました。プロジェクトを追加し、からの参照を追加しまし
ClientSide
た。ServiceWorkLibrary
ClientSide
次に、上記の
svcutil.exe
呼び出しを実行しました。これにより と が生成さMainService.cs
れoutput.config
、プロジェクトに追加しましたClientSide
。最後に、次のコードを
/li>Main
メソッドに追加しました。これは、コンストラクター呼び出しで不可解な例外で既に失敗しています。
output.config
に名前を変更することで、これを修正できましたApp.config
。の戻り値の型がではなく
GetInterface()
isであることに気付きました。理由を知っている人はいますか?しかし、先に進みましょう...object
IWorkInterface
これを実行すると
CommunicationException
、呼び出し時に次のようになりGetInterface()
ます。基になる接続が閉じられました: 接続が予期せず閉じられました。
これを修正して、IWorkInterface
期待どおりの透過プロキシを取得するにはどうすればよいですか?
私が試したこと
[KnownType(typeof(WorkInterfaceImpl))]
の宣言に追加してみましたWorkInterfaceImpl
。これを行うと、同じ場所で別の例外が発生します。これはNetDispatcherFaultException
、次のメッセージ付きです。メッセージを逆シリアル化しようとしているときにフォーマッタが例外をスローしました: パラメータhttp://tempuri.org/:GetInterfaceResultを逆シリアル化しようとしているときにエラーが発生しました。InnerException メッセージは、「行 1 位置 491 のエラーです。要素 'http://tempuri.org/:GetInterfaceResult' には、名前 'http://schemas.datacontract.org/2004/07/ にマップされる型からのデータが含まれています。 ServiceSide:WorkInterfaceImpl'. デシリアライザーは、この名前にマップされる型を認識しません。DataContractResolver の使用を検討するか、'WorkInterfaceImpl' に対応する型を既知の型のリストに追加します。たとえば、KnownTypeAttribute 属性を使用するか、DataContractSerializer に渡される既知の型のリストに追加します。詳細については、InnerException を参照してください。
InnerException
言及されたのSerializationException
はメッセージ付きです:行 1 位置 491 のエラー。要素 'http://tempuri.org/:GetInterfaceResult' には、名前 'http://schemas.datacontract.org/2004/07/ServiceSide:WorkInterfaceImpl' にマップされるタイプのデータが含まれています。デシリアライザーは、この名前にマップされる型を認識しません。DataContractResolver の使用を検討するか、'WorkInterfaceImpl' に対応する型を既知の型のリストに追加します。たとえば、KnownTypeAttribute 属性を使用するか、DataContractSerializer に渡される既知の型のリストに追加します。
これは、システムが型をシリアル化しようとしていることを示しているように見えることに注目してください。そうすべきではありません。代わりに透過プロキシを生成することになっています。シリアル化の試行を停止するにはどうすればよいですか?
クラス
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
に属性 を追加してみました。WorkInterfaceImpl
無効。インターフェイスの属性(共有ライブラリで宣言されている) を に
[ServiceContract]
変更してみました。また効果なし。IWorkInterface
ServiceWorkLibrary
[ServiceContract(SessionMode = SessionMode.Required)]
system.diagnostics
また、次の魔法の要素をWeb.config
in に追加してみましたServerSide
:これにより、約束どおりにファイルが生成され
c:\traces.svclog
ますが、その内容を理解できるかどうかはわかりません。生成されたファイルを Pastebin here に投稿しました。を使用すると、この情報をより使いやすい UI で表示できますsvctraceviewer.exe
。私はそうしましたが、率直に言って、それらすべてが私に何も教えてくれません...
私は何を間違っていますか?
php - Torウェブクローラー
わかりました、これが私が必要とするものです。PHP ベースの Web クローラーを使用しています。ここからアクセスできます: http://rz7ocnxxu7ka6ncv.onion/ さて、私の問題は、実際にページをクロールするスパイダーが SOCKS ポート 9050 でクロールする必要があることです。私が索引付けしているものである.onionドメインを解決できます。(末尾が .onion のみです。) このスクリプトをコマンド ラインから php crawl.php を使用して呼び出し、ページをクロールするための適切なパラメーターを追加します。これが私が思うことです:Torを強制的に使用する方法はありますか? または、マシン全体に強制的に Tor を通過させることはできますか? (すべてのトラフィックを強制的に 127.0.0.1:9050 に通すように) おそらく、グローバル プロキシ設定をセットアップすると、php はそれらを尊重するでしょうか?
私の解決策のいずれかが機能する場合、どうすればよいですか? (ステップバイステップの指示をお願いします、私は初心者です。)
独自の Tor 検索エンジンを作成したいだけです。(私の p2p 検索エンジンはお勧めしません。これは私が求めているものではありません。それらが存在することは知っています。宿題をしました。) 興味のある方は、クローラーのソースをご覧ください。すべてのクロール要求に 127.0.0.1:9050 を使用するように変更できますか? http://pastebin.com/kscGJCc5
python - root として実行されている kill できない Python プロセスを kill する方法
10.7.3 で実行している sshuttleで厄介な問題が発生しています。MBA には最新のファームウェア アップデートが適用されています。停止した後 (ctrl+c を 2 回)、接続が緩んでいるか、ふたを閉じた後、再起動するまで復元できません。システム。再起動には、通常よりもかなり時間がかかります。ipfw ルールをフラッシュしようとしましたが、役に立ちません。
(OSを再起動せずに)sshuttle接続を復元する方法を教えてください。
次のプロセスは root として実行されたままですが、これを強制終了する方法がわかりません (試しsudo kill -9 <pid>
てみましたがうまくいきませんでした)。
プロキシを実行するために使用するコマンド:
接続を復元しようとして表示される最後のメッセージ:
アップデート:
c# - 高匿名プロキシ、匿名プロキシ、透過プロキシをプログラムで区別する
プロキシ IP アドレスを持っているが、それに関する情報がないとします。
これは、どの種類のプロキシであるかを最初から知ることは可能ですか (遠くの Web サーバーは私がプロキシの背後にいることを知りません。遠くの Web サーバーは私がプロキシの背後にいることを知っていますが、私の IP を知りません。遠くの Web サーバーは両方の情報を知っています) ?
ナビゲートしているときに、自分についてどの情報が知られているかを確認する簡単なテストはありますか?
[編集]
「いいえ」のような単純な答えがあれば、歓迎します。私の最初の質問は「実現可能か」です。
c# - IIS 7.5 と組み合わせた動的言語ランタイムのバグ
この質問の長さをお詫び申し上げますが、皆さんはそれだけの価値があると思います。始める前に、私は本当に独立したコンソール アプリケーションを作成しようとしていましたが、残念ながらそれは不可能であることがわかりました。このバグは、コンソール アプリでは発生しません。自己完結型の ASP.NET アプリでは発生しません。これは、Windows 7 の IIS 7.5 内で実行した場合にのみ発生します。
__TransparentProxy
このエラーは、 (WCF 経由の)dynamic
変数と (int 型の) 変数の組み合わせが関係しているため、動的言語ランタイムに関連しているようです。問題を生成する行は、プロキシと動的 int の両方を渡す静的メソッド (たまたまメソッド本体を含まない) の呼び出しです。
メソッドが呼び出されると、w3wp.exe プロセスが CPU 全体を占有し、メモリを非常に急速に増加させ始めます (私にとっては 1 秒あたり約 100 メガバイトですが、おそらく GC のために徐々に減少します)。
このエラーを再現するには、Visual Studio で新しい ASP.NET Web サイトを作成します ("New" | "Project" "C#" | "Web" | "ASP.NET Web Application")。次に、新しいプロジェクトをホーム ディレクトリとする新しいサイトを IIS に作成します。(また、"Everyone" にそのフォルダーへの完全な読み取り/書き込みアクセス権を付与し、アプリ プールが .NET 4.0 を使用していることを確認します) 新しいサイトに特定のポート (7080 など) を付与します。最後に、次のコードを Global.asax.cs に貼り付けます。
http://localhost:7080
次に、ブラウザーで(または選択した任意のポート) を介してサイトにアクセスします。報告された症状を確認した後、w3wp.exe プロセスを強制終了する必要があるため、タスク マネージャーを準備します。
プロキシとダイナミックが連携してこのバグを表面化していることを確認するには、次の行を変更します。
に:
再試行すると、問題が解消され、ページが読み込まれることがわかります。に戻してからdynamic
、次の行を変更します。
に:
再試行すると、このシナリオでも問題が解消されていることがわかります。
最後に、デバッガーをアタッチしてすべてを中断すると、このメソッド呼び出しでスタックしている間にデバッガーが何をしているかを確認できます。常に次のように表示されるようです。
mscorlib.dll!System.RuntimeMethodHandle.GetDeclaringType(System.IRuntimeMethodInfo メソッド) + 0x2f バイト
mscorlib.dll!System.Reflection.Emit.DynamicResolver.ParentToken(int トークン) + 0x1f3 バイト
[ネイティブからマネージドへの移行]
[マネージドからネイティブへの移行]
mscorlib.dll!System.Reflection.Emit.DynamicMethod.CreateDelegate(System.Type delegateType, オブジェクト ターゲット) + 0x29 バイト
System.Core.dll!System.Linq.Expressions.Expression>.Compile() + 0xbb バイト
System.Core. dll!System.Runtime.CompilerServices.CallSiteBinder.BindCore>(System.Runtime.CompilerServices.CallSite> site, object[] args) + 0x10a バイト
System.Core.dll!System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid3(System.Runtime.CompilerServices.CallSite サイト = {System.Runtime.CompilerServices.CallSite>}、WebApplication1.Global arg0 = {ASP.global_asax}、WebApplication1.Global.IFooServices arg1 = {System.Runtime.Remoting.Proxies.__TransparentProxy}、オブジェクト arg2 = 5) + 0x3f0 バイト
WebApplication1.dll!WebApplication1.Global.Application_Start(オブジェクトの送信者 = {System.Web.HttpApplicationFactory}、System.EventArgs e = {システム.EventArgs}) 19 行目 + 0x1b8 バイト C#
記録のために、私は 3 台の異なるマシンで試しましたが、Windows7/IIS7.5 ボックスでのみ再現できました。Windows Server 2008 / IIS7 ボックスでは問題はありませんでした。
問題は、この問題を解決してメソッドを正常に呼び出すにはどうすればよいかということです。また、なぜこれが起こっているのですか?IIS がクラッシュするため、DLR を使用するものを呼び出すことに過度に注意する必要はありません。