HTTPListenerを使用している場合は、httpconfig.exeまたはnetshを使用してHTTPListenerを構成する必要があります。理由は次のとおりです。
A. AFAIK C#からこれを行うためのAPIはなく、コマンドラインツールのみです。
B.デフォルトでは、SYSTEMまたはローカルのAdministratorsグループのみがhttpプレフィックスをリッスンできます
つまり...アプリがユーザーのアカウントで実行されている場合、HTTPHandlerはHTTP.sysを使用して実行中のWebサーバーとポートを共有するため(httpcfg.exeまたはnetshを使用して)、明示的にアクセスを許可する必要があります(これにより、独自のWebサーバーをホストできます) IISがポート80でも実行されている間、ポート80のWebアプリ)。
より良い解決策は、実際の組み込みWebサーバーを使用して、必要なポートでリッスンすることです。別のアプリケーション(IISなど)がすでにポートを使用している場合、これは機能しませんが、これはポート共有にHTTP.sysを使用しないため、ポートで開いている/聞いているユーザーアカウントに関するセキュリティ制限はありません。 。ユーザーに独自のポートを指定してもらいたいので、ポート80以外の別のポートで実行することは許容できるようです。
私の会社は、 ASP.NETを実行し、プログラムでサーバーを起動/停止し、構成を設定できるNeokernel Webサーバー(http://www.neokernel.com )と呼ばれる商用製品を作成しています。このアセンブリをアプリケーションに埋め込んで配布できます。
変更して埋め込むことができるカッシーニのソースコードもあります。これは無料ですが、ロギングやSSLサポートがないなどのいくつかの欠点があります。