web-dev-qa-db-ja.com

不正なリクエスト-無効なホスト名ASP.net Visual Studio 2015

Visual Studio 2015でWebサイトをデバッグした後、localhost:50544経由でアクセスできます。同じネットワーク上にある別のコンピューターでWebサイトにアクセスしたいと思います。これを行うには、192.168.1.13:50544のコンピューターアドレスにアクセスできる必要があります。

ただし、このアドレスにアクセスすると、「不正なリクエスト、無効なホスト名」エラーが表示されます。ウェブサイトが提供されているのと同じマシンでアクセスしても。

アドバイスに従って here 次のWindowsファイアウォールルールを作成し、ファイアウォールを完全にオフにしようとしました。 picture of firewall rule

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」エラーが発生します。

24
RADXack

bindingInformation属性の形式は次のとおりです。

ip address:port:Host header

必要なのは:

bindingInformation="192.168.1.13:50544:*"

ソース: https://www.iis.net/configreference/system.applicationhost/sites/site/bindings/binding?showTreeNavigation=true#006

更新:

この答えは間違っていると誤解されている人もいるようです。まず、ドキュメント(上記のリンクを参照)を読み、例を読んでください。

次に、IISとIIS Expressは本質的に同じ製品です。IIS Expressは管理者以外が実行できるように微調整されています。 IISローカルの完全な管理者権限を持たない可能性のある開発者のPC。これにもかかわらず、両方ともIISとIIS高速使用同じ applicationHost.configファイル形式。これは、bindingInformation属性形式が両方の製品でまったく同じであることを意味します。

(不正な):50544:192.168.1.13bindingInformation文字列が機能する理由は(正しいか間違っているか)です。

  • hostヘッダーが指定されていない場合

  • バインディング情報フィールドの最初の部分に一致するIPアドレスがない場合

... then IISは、バインディング情報文字列のHostヘッダー部分のIPアドレスとの照合を試みます。

IIS7 +とIIS Expressの両方の正しい形式は、常にあります。

ip_address:port:Host_header
21
Kev

管理者としてVisual Studioを実行する

Visual Studio 2015では、applicationhost.configは、プロジェクト自体のフォルダーにあります。 ESC MyProjectName\.vs\config.vsフォルダは非表示になっている場合があります。 IISExpressフォルダーではなく、そこからIPを変更します。

きみの <binding protocol="http" bindingInformation="*:50544:192.168.1.13" /> 正しい。

23
Seagull

IIS設定を変更せずに外部アクセスに高速化するために使用できるConveyorという拡張機能を作成しました。

https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti

10
Jim W

リモートアクセスにも同じ問題があり、これらのヒントをすべて試して修正しました。私にとっては、Webプロジェクトの設定で「匿名認証を許可する」をチェックするのに役立ちました。

0
Oskar Bzdoń