どのようなシナリオで「netsh http add urlacl」を使用しますか?


14

私はそのようなコマンドを使用する必要があるシナリオを理解しようとしています:

netsh http add urlacl url=http://server1:1234/ user=Everyone

hostsコンピュータに特定のアドレスを接続できるファイルを使用するようなものですか?(私はそうは思いません)。

ドキュメントは:(私には)明確であることではありません

Netshはコマンドラインスクリプトユーティリティで、ローカルまたはリモートで、現在実行中のコンピューターのネットワーク構成を表示または変更できます。Netshには、指定したコンピューターに対してコマンドのグループをバッチモードで実行できるスクリプト機能も用意されています。Netshは、アーカイブまたは他のサーバーの構成に役立つように、構成スクリプトをテキストファイルに保存することもできます。

質問:

誰かが実際に使用したいシナリオ(+実装)を提供してもらえますか?

追加情報:(C#経由で)アクセスしようとした男がこの質問 を読んだところ:

http://localhost:1234 動作しますが

http://server1:1234 失敗する

(しかし、私はなぜ彼がhostsそれを解決することができるファイルを使用しなかったのか理解していません)-しかし、別の人がnetshその仕事をすると答えました。
だから私はここに何かが足りないと思います。


私は過去1年間、毎日どのホストファイルを使用しているかを完全に把握しています。私の質問のコードがhostsファイルとどのように異なるのか理解できません。どちらも同じように見えます。そして悲しいことに、あなたはあなたの答えに違いを提供しません
でした

回答:


18

netsh httpの構成を変更するときに使用しますhttp.sys。これはhostsファイルとはまったく異なり、はるかに低いレベルのWindowsで動作します。このレベルは、ハンドルがHTTPサーバの動作していることを一つであり、コンピュータにローカルので、今後の要求に関係している、お使いのコンピュータではなく、行くもの出てインターネットに。

これは、URLリクエストを処理するためのWindowsのアーキテクチャです。

http.sysアーキテクチャ

http.sys は、HTTPトラフィックをリッスンし、URLに基​​づいてプロセスへの要求をディスパッチするドライバーであるため、複数のプロセスが同じポートでHTTPトラフィックをリッスンできます。

http.sysはWindows Server 2003で導入されました。以前は、アプリケーションはエンドポイント(IP:ポート)でソケットを開き、着信トラフィックをリッスンして解析していました。問題は、これにより、すべてのアプリケーションがポート80(http)および443(https)を使用できなくなることでした。ソケットモデルでは、一度に1つのアプリケーションしかエンドポイントをリッスンできないためです。

ときは、インターネットインフォメーションサービス(IIS) Webサーバー、またはHTTPサーバーのAPIを使用するアプリケーションは、いくつかのHTTPリクエストパスに耳を傾け、彼らは上のURL接頭辞を登録する必要がありますhttp.sys。このプロセスを登録と呼びます。

着信要求がによって選択されhttp.sys、適切な登録済みアプリケーションに配信される場合、これはルーティングと呼ばれます

管理者モードで実行されているすべてのアプリケーションは、URLに登録できます。管理者以外のアプリケーションはnetsh http add urlacl 、要求を受信するために使用する必要があります。

結論:非管理者モードで実行されている低レベルのURLサーバーを構築していないので、を使用する理由はありませんnetsh http add urlacl

参照:


「ユーザーがiisに接続したい...」というシナリオを提供していただけませんか?
Royi Namir

これは、アプリケーションがIISと並行して動作するための方法です。URLプレフィックスを登録すると、アプリケーションはすべての要求をIIS経由ではなく直接取得します。つまり、IISの拡張として作成する必要も、IISをインストールする必要もありません(これは理論的には-ありません)。実際には、http.sysがIISからどれだけ独立しているかがわかります)。
harrymc 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.