ポート8080でWebアプリをヒットしようとすると、次のエラーが発生します
不正な要求-無効なホスト名
HTTPエラー400。要求のホスト名が無効です。
この問題の診断をどこから始めればよいのかさえわかりません
回答:
バインディングがIISであることを確認しましたか?(inetmgr.exe)8080のすべてのホスト名を受け入れるように登録されていない可能性があります。
たとえば、mysite.com:8080に設定し、localhost:8080でヒットした場合、IISは要求を取得しますが、一致するホスト名バインディングがないため、拒否されます。
それ以外では、サーバー上のIISログ(C:\ inetpub \ logs \ wmsvc#)をチェックして、要求が表示されているかどうかを確認する必要があります。次に、それがクライアントに問題があるのか、サーバー自体に問題があるのかがわかります。
FWIW、任意のホスト名/ IPに向けられたリクエストのみを許可したい場合は、次のようにバインディングを設定できます。
<binding protocol="http" bindingInformation="*:80:*" />
このバインディングを使用して、IE6でVMをロードし、アプリケーションをデバッグできるようにします。
編集:IIS Expressを使用してデバッグしている間、このオプションの構成ファイルのデフォルトの場所は
C:\Users\{User}\Documents\IISExpress\config\applicationhost.config
Microsoftによるこのページでは、ローカルネットワーク上の他のコンピューターからIIS ServerExpressへのアクセスを設定する方法について説明します。
手短に:
1)管理者権限を持つコマンドプロンプトから:
netsh http add urlacl url=http://[your ip address]:8181/ user=everyone
2)セキュリティが強化されたWindowsファイアウォールで、ポート8181の新しい受信ルールを作成して、外部接続を許可します
3)applicationhost.configのプロジェクトのノードに、以下を追加します。
<binding protocol="http" bindingInformation="*:8181:[your ip address]" />
追加しないでください(別の回答で提案されているように):
<binding protocol="http" bindingInformation="*:8181:*" />
上記のワイルドカードバインディングにより、 http://192.168.1.6:8181/
netsh http delete urlacl url=http://[your ip address]:8181/
以下の場合Visual Studio 2017
とVisual Studio 2015
、IIS Express
設定が隠さに格納され.vs
たディレクトリとパスは、このようなものである.vs\config\applicationhost.config
、意志の作業以下のように結合追加
<bindings>
<binding protocol="http" bindingInformation="*:8802:localhost" />
<binding protocol="http" bindingInformation="*:8802:127.0.0.1" />
</bindings>
構文:https: //docs.microsoft.com/en-us/dotnet/api/microsoft.web.administration.binding.bindinginformation?view = iis-dotnet
<bindings> <binding protocol="http" bindingInformation="localhost:8802:*" /> <binding protocol="http" bindingInformation="127.0.0.1:8802:*"/> </bindings>
これは私の問題を解決しました(私の悪い英語で申し訳ありません):
管理者としてcmdを開き、コマンドを実行します(角括弧なし):
netsh http add urlacl url=http://[ip adress]:[port]/ user=everyone
documents/iisexpress/config/applicationhost.config
(隠し)フォルダ内のルートプロジェクトフォルダ内および.vs/config/applicationhost.config
「サイト」タグに行を追加する必要があります:
<binding protocol="http" bindingInformation="*:8080:192.xxx.xxx.xxx" />
「インターネットインフォメーションサービス(iis)マネージャー」を開きます(
見つけるには:タスクバーの検索で「ウィンドウ機能をオンまたはオフにする」と入力して結果を開き、[インターネットインフォメーションサービス]チェックボックスをオンにしてインストールします):
「セキュリティが強化されたWindowsファイアウォール」を開き、
完了しました。
これがあなたの問題であったかどうかはわかりませんが、自分のマシンから自分のWebアプリケーションにアクセスしようとして、この問題を抱えている人にとっては、次のようになります。
外部IPアドレスではなく127.0.0.1
(別名localhost
)に接続していることを確認してください。
あなたのURLは何かのようにあるべきhttp://localhost:8181/
か、http://127.0.0.1:8181
そしてません http://YourExternalIPaddress:8181/
。
外部IPアドレスに接続すると、見知らぬ人(またはハッカー)であるかのように、インターネットから接続します。
ただし、ローカルホストに接続するときは、自分自身としてローカルに接続するため、ブロックは明らかに必要ありません(完全に回避されます)。
localhost
、それが参照しているものです(127.0.0.1
)。私が言っているのは、外部から見えるIPではなく、それに接続することだけです。ローカルホストに依存することはなく、同義語として使用されるだけです。これを明確にするために、回答を編集します。