VS2012で開発されたテストASP.NET MVC3アプリケーションがあります。デバッグを開始すると、http://localhost:<portnumber>
へのリクエストを介してホストマシンからアプリにアクセスします。しかし、http://<ip>:<portnumber>
を介してイントラネットのリモートマシンから同じアプリケーションにアクセスしようとすると、HTTP error 400: Bad request. Invalid Host Name.
を取得します。IIS Expressで実行する限り、サーバー構成にアクセスできません。
これを解決する方法はありますか?
ソリューションディレクトリで、ファイル.vs\config\applicationHost.config
の行を変更します
<binding protocol="http" bindingInformation="*:44302:localhost" />
に
<binding protocol="http" bindingInformation=":44302:" />
(44302はポートです)
管理コマンドプロンプトから:
私。非管理者がポートにバインドできるようにする
netsh http add urlacl url=http://*:44302/ user=Everyone
ii。ファイアウォールの通過を許可する
netsh advfirewall firewall add rule name="IISExpress visualstudio app" protocol=tcp localport=44302 dir=in action=allow
Iisexpress構成ファイルを変更する場合を除き、次のようなコマンドも実行する必要がある場合があります。
netsh http add urlacl url = http:// *:49419/user = Everyone
@Garret Fogerlieの投稿にコメントを追加することはできず、コメント作成者の問題(@ Y.Ecarriおよび@SamuelEdwinWard)に対応してコメントを追加できないため、Visual Studio 2013を使用してGarretが提案した内容に従い、管理モードで実行し、 application.config
ファイル。
デバッグを起動して同じエラーメッセージが表示されたことを確認した後、application.config
に戻り、Y.Ecarriの問題のようにサイトの新しいエントリが作成されたことを確認しました。
そこで、デバッグを停止し、Visual Studioでソリューションを開いたままにしておきました、新しいエントリのapplication.config
ファイルを再度編集しました。また、*
の歌とlocalhost
を完全に削除したので、新しいエントリについて次のようにしました。
<binding protocol="https" bindingInformation=":44300:" />
管理者としてVisual Studioを実行しないようにする方法
Garret's と @ shangkeyun's answer の両方を使用すると、管理者ユーザーとしてVisual Studioを実行しなくても、実行中のWebサイトに接続できます。
%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config
を開きますname=MySiteName
を使用してサイトを検索します<binding>
セクションの既存の<bindings>
アイテムを複製します。これで、binding
を含む2行が表示されます。ポートが12345
であると仮定すると、次のようになります。
<binding protocol="http" bindingInformation="*:12345:localhost" />
<binding protocol="http" bindingInformation="*:12345:" />
非管理者がポートにバインドできるようにする
netsh http add urlacl url=http://*:12345/ user=Everyone
EDIT 2019:gregmacは、VSインスタンスをホワイトリストに登録するステップを追加しました。私はこれを必要としませんでしたが、とにかくそれをリストします:
netsh advfirewall firewall add rule name="IISExpress visualstudio app" protocol=tcp localport=12345 dir=in action=allow
%USERPROFILE%ディレクトリを使用した変更とテストに多くの時間を費やす人もいます。 VS debugで実行している場合は、$(solutionDir).vs\config\applicationhost.configを使用します
Byteitのおかげで:
Documents/IISExpress/configのapplicationhost.configに移動します
作業している特定のサイトのエントリを見つけます。
追加:
<binding protocol="http" bindingInformation="*:<your site port>:*" />
既存の前に
<binding protocol="http" bindingInformation="*:<your site port>:localhost" />
VS2013を使用せずにソリューションを実現するには、再起動時に新しいWebサイトxmlエントリを作成します。管理者として実行する必要があります。
Visual Studio Codeでのデバッグに非常に似た問題があった場合、以下を追加して解決しました。
"env": {
// ...
"ASPNETCORE_URLS": "http://*:5000" // change to the port you are using
// ...
},
.. tolaunch.json
どうやら、デフォルトではhttpプロトコルを「localhost:5000」にバインドするため、localhostで動作しますがでは動作しませんip address-リモートでもローカルでもありません。
別のコンピューターからの要求によってブレークポイントに到達しようとしている場合、ファイアウォール設定(および/またはウイルス対策)を確認することを忘れないでください
お役に立てれば
これは私のために働いたものです:
C:\VSProjects
)Directory Browsing
を選択します。右側にはEnable
ボタンがあります。クリックして。これで、mypcname\VSProjects\myProj\outputBinViewer
を介してネットワーク上のフォルダーとプロジェクトビンにアクセスできます。