Visual Studio 2015でWebサイトをデバッグした後、localhost:50544経由でアクセスできます。同じネットワーク上にある別のコンピューターでWebサイトにアクセスしたいと思います。これを行うには、192.168.1.13:50544のコンピューターアドレスにアクセスできる必要があります。
ただし、このアドレスにアクセスすると、「不正なリクエスト、無効なホスト名」エラーが表示されます。ウェブサイトが提供されているのと同じマシンでアクセスしても。
アドバイスに従って here 次のWindowsファイアウォールルールを作成し、ファイアウォールを完全にオフにしようとしました。
IIS expressを使用しているため、 '〜\ Documents\IISExpress\config\applicationhost.config'ファイルに追加しています
<binding protocol="http" bindingInformation=":8080:localhost" /> //original rule
<binding protocol="http" bindingInformation="*:50544:192.168.1.13" />
ただし、任意のマシンで192.168.1.13:50544にアクセスすると、依然として「Bad Request」エラーが発生します。
bindingInformation
属性の形式は次のとおりです。
ip address:port:Host header
必要なのは:
bindingInformation="192.168.1.13:50544:*"
更新:
この答えは間違っていると誤解されている人もいるようです。まず、ドキュメント(上記のリンクを参照)を読み、例を読んでください。
次に、IISとIIS Expressは本質的に同じ製品です。IIS Expressは管理者以外が実行できるように微調整されています。 IISローカルの完全な管理者権限を持たない可能性のある開発者のPC。これにもかかわらず、両方ともIISとIIS高速使用同じ applicationHost.config
ファイル形式。これは、bindingInformation
属性形式が両方の製品でまったく同じであることを意味します。
(不正な):50544:192.168.1.13
bindingInformation
文字列が機能する理由は(正しいか間違っているか)です。
hostヘッダーが指定されていない場合
バインディング情報フィールドの最初の部分に一致するIPアドレスがない場合
... then IISは、バインディング情報文字列のHostヘッダー部分のIPアドレスとの照合を試みます。
IIS7 +とIIS Expressの両方の正しい形式は、常にあります。
ip_address:port:Host_header
管理者としてVisual Studioを実行する
Visual Studio 2015では、applicationhost.config
は、プロジェクト自体のフォルダーにあります。 ESC MyProjectName\.vs\config
、.vs
フォルダは非表示になっている場合があります。 IISExpressフォルダーではなく、そこからIPを変更します。
きみの <binding protocol="http" bindingInformation="*:50544:192.168.1.13" />
正しい。
IIS設定を変更せずに外部アクセスに高速化するために使用できるConveyorという拡張機能を作成しました。
https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti
リモートアクセスにも同じ問題があり、これらのヒントをすべて試して修正しました。私にとっては、Webプロジェクトの設定で「匿名認証を許可する」をチェックするのに役立ちました。