私はそのようなコマンドを使用する必要があるシナリオを理解しようとしています:
netsh http add urlacl url=http://server1:1234/ user=Everyone
コンピュータに特定のアドレスを接続できるhosts
ファイルを使用するようなものですか? (私はそうは思いません)。
docs はそれほど明確ではありません(私には):
Netshはコマンドラインスクリプトユーティリティで、ローカルまたはリモートで、現在実行中のコンピューターのネットワーク構成を表示または変更できます。 Netshには、指定したコンピューターに対してコマンドのグループをバッチモードで実行できるスクリプト機能も用意されています。 Netshは、アーカイブまたは他のサーバーの構成に役立つように、構成スクリプトをテキストファイルに保存することもできます。
質問:
誰かが実際に使用したいシナリオ(+実装)を提供してもらえますか?
追加情報:私は読んだ this question where guy who who 'に(C#経由で)アクセスしようとしました:
http://localhost:1234
は機能しますが、
http://server1:1234
失敗
(しかし、なぜ彼はそれを解決できるhosts
ファイルを使用しなかったのか理解できません)-しかし、別の人がnetsh
がその仕事をすると答えました。
だから、私はここで何か不足していると思います。
netsh http
の構成を変更する場合はhttp.sys
を使用します。これはhosts
ファイルとはまったく異なり、はるかに低いレベルのWindowsで動作します。このレベルは、HTTPサーバーの実行を処理するレベルですコンピューター内でローカルなので、送信されるリクエストではなく、intoコンピューターに送信されるリクエストに関係しますoutインターネットへ。
これは、URLリクエストを処理するためのWindowsのアーキテクチャです。
http.sys
は、HTTPトラフィックをリッスンし、URLに基づいてリクエストをプロセスにディスパッチするため、複数のプロセスが同じポートでHTTPトラフィックをリッスンできます。
http.sys
はWindows Server 2003で導入されました。以前は、アプリケーションはエンドポイント(IP:ポート)でソケットを開き、着信トラフィックをリッスンして解析していました。問題は、これにより、すべてのアプリケーションがポート80(http)および443(https)を使用できなくなることでした。ソケットモデルでは、一度に1つのアプリケーションしかエンドポイントをリッスンできないためです。
インターネットインフォメーションサービス(IIS) Webサーバー、またはHTTPサーバーAPIを使用するアプリケーションがHTTPリクエストパスをリッスンする場合、http.sys
にURLプレフィックスを登録する必要があります。このプロセスをregistrationと呼びます。
着信リクエストがhttp.sys
によって選択され、正しい登録済みアプリケーションに配信されると、これはroutingと呼ばれます。
管理者モードで実行されているすべてのアプリケーションは、URLに登録できます。管理者以外のアプリケーションは、netsh http add urlacl
を使用してリクエストを受信する必要があります。
結論:非管理者モードで実行されている低レベルのURLサーバーを構築していないので、netsh http add urlacl
を使用する理由はありません。
参照: