15

これまでのところ、HttpListener を使用して小さなスタンドアロンの http サーバーを提供するアプリケーションを開発しています。しかし、私は最近、HttpListener を管理者として実行する必要があることを発見しました。これは常に可能であるとは限りません。

最良の代替手段は何でしょうか? http GET と POST が必要です。どちらもファイルシステム上のファイルを単に読み書きするだけではなく、カスタム .Net コードを実行する必要があります。

これまでの私の研究では Cassini が生まれましたが、私が知る限り、カスタム バージョンを作成する必要があります。他に何かありますか?特に、HttpListener と同じインターフェイスを備えているが、管理者権限を必要としないものは素晴らしいでしょう!

4

7 に答える 7

8

私が見つけた 1 つの代替手段は、CodePlex 上のC# Webサーバーです。

「...任意の.Netアプリケーションに埋め込むことができる柔軟なhttpサーバー。モジュールを使用して機能が追加されるモジュラー設計を備えています。サーバーはRESTとすべてのhttp動詞もサポートしています...」

System.Net.HttpListener に似ていると思う HttpListener クラスがありますが、どちらもまだ使用していないため、確信が持てません。

于 2009-11-13T14:11:02.750 に答える
4

これに対する 1 つの解決策は、この別の質問で説明されています。非管理者として HttpListener を実行する権限を自分自身に与えることができます。

アクセス許可を整理してから実際のアプリを実行するコマンド ファイルからアプリを起動することができます。

于 2008-11-11T11:53:39.657 に答える
3

あなたの投稿に対する Will Dean のコメントのように、次の netsh コマンドを実行できます。

netsh http add urlacl url=http://+:8346/ user="NTAuthority\Authenticated Users" sddl="D:(A;;GX;;;AU)"

「http://+:8346/」を自分の値に置き換えます。これにより、認証されたユーザーはターゲット エンドポイントで Web サーバーを実行できるようになります。

于 2012-03-12T11:24:44.543 に答える
0

さて、インバウンド http 接続を許可する必要がある通常のデスクトップ アプリがあります。うーん、Windows ファイアウォールは問題になりませんか?

そうでないと仮定すると、それはほとんどウェブサービスのように聞こえます-そのルートに行くことができますか-それを介してURLを公開しますか? 私の .Net の知識は、リクエストに応答するために特定の http サーバーを実行する必要があるかどうかを知るのに十分ではありません。 Spring.Netはおそらく一見の価値があります。

于 2008-11-11T12:17:26.347 に答える