2つのコントローラーを公開するパブリックセルフホストASP.NETWebAPIサービスがあります。1つはHTTPS経由でのみアクセスできるようにしたいのですが、もう1つはアクセスできません。これは単一のサービス内で実行できますか?もしそうなら、あなたはいくつかのヒントを提供できますか?2つのベースアドレスを登録する必要があるようですが、1つのサービスでそれがどのように可能かわかりません。
質問する
2535 次
2 に答える
7
2つのHttpServerインスタンスを作成する必要があります。1つはhttp用、もう1つはhttps用です。HttpListenerが同じリスナーの両方の登録を処理できることがわかっているため、この制限が存在する理由を調べようとしています。
とにかく、2つのHttpServerインスタンスを作成しても実際には機能しない場合は、KatanaプロジェクトとMicrosoft.Owin.HttpListenerを確認する必要があります。これは複数のアドレスをサポートしますが、残念ながらデフォルトのKatanaスタートアップコードはサポートしていません!しかし、私はそれを可能にするために起動時にHttpListenerをカスタマイズする方法があります。
于 2013-01-23T16:18:45.797 に答える
0
(ServiceStack.Host.HttpListenerの)HttpListenerBaseは、起動時にnullでない場合、そのリスナーをオーバーライドしないため、HttpListenerBaseから継承するホストクラスで次のことを実行できます。
public override ServiceStackHost Start(string urlBaseNoPrefix)
{
// Here urlBaseNoPrefix is something like "web.acme.com/app/"
Listener = new System.Net.HttpListener();
Listener.Prefixes.Add("http://" + urlBaseNoPrefix);
base.Start("https://" + urlBaseNoPrefix);
return this;
}
于 2015-03-22T13:49:03.497 に答える