質問の以前のバージョンから、これがあります: localhost ではなく、ip addressでウェブサイトを閲覧してください。 ..ローカルIPが機能しています。それから私はngrokを見つけました、そしてどうやら私はIP経由で接続する必要はありません。
私がやろうとしているのは、localhostで実行されている私のウェブサイトをインターネットに公開することです。私はこれを行うツールを見つけました:ngrok。
Webサイトをビジュアルスタジオで実行すると、Webサイトはlocalhost/port#で起動します。コマンドラインで "ngrok http port#"コマンドを実行します。すべてうまく起動しているようです。私はいくつかのURLを生成し、ngrokのインスペクションURL(localhost:4040)が動作します。
唯一の問題は、生成されたURLにアクセスするとHTTPエラー400が発生することです。これは "ngrok http wrongport#"を実行したときとは異なるエラーです。これはホストが見つかりませんエラーです...だから何か良いことが起こっていると思います。わかりませんが….
自分のサイトをトンネリングサービスを介してインターネットに公開するために欠けているステップはありますか?もしあれば、ngrokのドキュメントには見つかりません。
Ngrokでこの問題を解決してください。控えめに言っても、いくつかのアプリケーションでは、予想とは異なるHostヘッダーが表示されると怒ります。
次のコマンドを実行すると問題が解決します。
ngrok http [port] -Host-header="localhost:[port]"
これは私にはうまくいきませんでした。次のことができます。
IIS Expressの場合
VS 2015の場合:プロジェクトの.vs\config\applicationhost.config
フォルダに移動します。
VS 2013以前の場合:%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config
に移動します
次のようなバインディングを見つけます。
<binding protocol="http" bindingInformation="*:5219:localhost" />
私にとっては、ポート5219で実行中のプロジェクトでした
に変更
<binding protocol="http" bindingInformation="*:5219:" />
IIS Expressはそのポートでのすべての着信接続を受け入れるようになります。
デメリット:adminとしてIIS Expressを実行する必要があります。
または、NgrokのHostヘッダーを書き換えることもできます。
ngrok.exe http -Host-header=rewrite localhost:5219
次のコマンドは問題を解決します
ngrok http -Host-header=localhost 8080
私にとって最も簡単なことは iisexpress-proxy + ngrokを使用することでした。
最初にnpmを使ってiisexpress-proxy
をグローバルにインストールします。
npm install -g iisexpress-proxy
それから私はそれで私のローカルホストを代理します。たとえば、私のサイトが3003
で実行されているとします。
iisexpress-proxy 3003 to 12345
は12345
がプロキシしたい新しいhttpポートです。
それから私はそれでngrokを実行することができます。
./ngrok.exe http 12345
それだけでうまくいきます! ????
しかし、私はそれがhttp
でのみうまくいくと思います。今のところ私はhttps
を使ってテストすることはしていませんが、たとえそれがうまくいったとしても、いつものように多くの作業が必要です。