web-dev-qa-db-ja.com

.NETCoreのHttpListenerのアナログとは

アプリケーションを.NET4から.NETCoreに移植していますが、HttpListenerクラスのアナログが見つかりません

Error   CS0246  The type or namespace name 'HttpListener' could not be found (are you missing a using directive or an Assembly reference?)  

Update1

        private readonly HttpListener _httpListener;

            if (!HttpListener.IsSupported)
        {
            throw new NotSupportedException(
                "The Http Server cannot run on this operating system.");
        }

        _httpListener = new HttpListener();
        _httpListener.Prefixes.Add(prefix);
        _sessionSettings = settings;
10
Alexander

.NET Core 2.0ではその問題は発生しません(Martin Ullrichに感謝)。そのため、.NET Core 2.0を使用できる場所にインストールする必要があります Visual Studio Preview 2017バージョン15.

ただし、デフォルトでは(現時点では最低でも).NET Core 2.0はなく、VS 2017のインストール後に インストール が必要です。

追伸:-マーティン・ウルリッヒにもう一度感謝します-それはすごいです、たった5月10日(私が尋ねる3日前).NET Core 2.0 発表していました -そして私は今それを持っています

7
Alexander

コメントで述べたように、WebListenerMicrosoft.Net.Http.Server NuGetパッケージ)が最も近い代替品ですが、APIが異なります。または、Kestrel HTTPサーバーがあります。これはASP.NETCoreスタックから最適に使用されますが、単独で使用できます(ただし、セットアップは困難です)。

移植する場合は、クロスプラットフォームで動作し、完全に変更する必要のない API互換のHttpListener を備えた.NET Core2.0まで待つことをお勧めします。コード。

17
Martin Ullrich