2

Windows HTTP API の使用 localhost で HTTP ファイル サーバーを実行しています。

これには、 の呼び出しが含まれHttpAddUrl(hRequestQueue, L"http://localhost:80/", NULL)ます。

ERROR_ACCESS_DENIEDユーザーがアプリケーションを管理者として実行しない限り、これは失敗します。管理者権限を持たないユーザーにこの機能が必要です。(ローカルホスト サーバーを実行しているユーザーの何が問題なのですか?それはユーザー自身のためだけです。)

これを解決することを目的としていると思われるVista および XP 用のホットフィックスを見つけましたが、Windows 7 用のホットフィックスはありません。この記事は、Vista SP1 で修正されたことを示唆しています。 Windows 7に?

管理者以外がサーバーを実行できるようにするために他にできることはありますか?

4

3 に答える 3

9

私自身の質問に答えて、回避策を見つけました: IANA ポート番号状態ポート 49152-65535 は、動的/プライベート目的のためです。 HttpAddUrlポート >= 49152 の localhost の場合、管理者以外は問題なく動作します。

于 2011-07-17T13:40:31.760 に答える
5

HTTP API は http.sys (カーネル ドライバー) を使用するため、これはシステム レベルで構成する必要があります。管理者権限で実行される netsh.exe コマンドを使用して、ユーザーまたはアプリケーションにアクセスを許可できます。

netsh http add urlacl url=http://localhost:80/ user=EVERYONE listen=yes delegate=no
于 2011-09-27T09:55:44.730 に答える