web-dev-qa-db-ja.com

Visual Studio 2017-リモートユーザーにIIS ExpressのWebサイトへのアクセスを許可する

このトピックで見つけたすべてのガイドを調べて試しましたが、運はありませんでした。 HTTPSを使用してMVCプロジェクトを実行していますが、リモートモバイルデバイスをいくつか使用してデバッグサイトにアクセスし、Webサイトをテストしたいと考えています。私はほとんど機能するガイドをたどりましたが、私はそれを機能させるのにかなり近いと思います。これが私が行ったステップです:

  • ファイアウォールをオフにする
  • Webサイトのプロジェクトフォルダーを開き、\ vs\config \に移動してapplicationhost.configを開きます。
  • 次のように、マップされたポートを含むサイトと行を見つけます。

-編集してこの結果を取得します。

  • この時点でVisual Studioを管理者として実行しようとしましたが、通常のエラー400:不正なリクエスト-他のコンピューターからサイトにアクセスしようとしたときに無効なホスト名が表示されました
  • CMDを管理者として開き、次のコマンドを実行しました。

netsh http add urlacl url = http:// *:44363/user = everyone-URL予約が正常に追加されました

-Visual Studioを管理者および非管理者として起動しようとしました。次のエラーメッセージを取得します

"IIS Express Web Serverを起動できません。サイト" x "アプリケーションのURL" https:// localhost:4436 "を再登録できませんでした。エラーの説明:できませんそのファイルがすでに存在する場合、ファイルを作成します」

-その後、cmdを再度実行し、次のコマンドでURLを削除する必要があります。netshhttp delete urlacl url = http:// *:44363 /

これをVisual Studio 2017で使用するにはどうすればよいですか?私はそれを機能させるために多くのステップを踏むことはできません。多くのガイドを読みましたが、どれもうまくいきません

12
FireNacho

このような単純な共通のニーズが2017年に箱から出してすぐに実現するのは非常に困難なことです。

とにかく https://github.com/icflorescu/iisexpress-proxy はうまく機能しました。

ノードでインストール:

npm install -g iisexpress-proxy

次に、そのようなものです:

iisexpress-proxy 51123 to 3000

実行するには2分未満です。

18
JasonPlutext

Visual StudioおよびIIS Expressが役立つはずです。Expressでの経験を共有しましょう。HTTPSを使用しておらず、プロジェクトタイプはWCFを使用したWebサイトですが、目標を達成できるはずです。ここで前提条件です:

  1. IIS Expressがインストールされている
  2. インストールされているVisual Studio
  3. 管理者特権のコマンドプロンプトからパブリックポートのURL予約(netsh http add url = http:// *:50001/User = Everyone)を追加しました。
  4. 50001 TCPポートのファイアウォール受信ルールを追加(コントロールパネル-> Windowsファイアウォール->高度な設定->受信ルール->新しいルール...)

次に、VSでプロジェクトをセットアップします。 C#で定義済みのテンプレートの1つを使用しています。それをコンパイルし、VSから実行してみます。その時点で、VSはサイトの実行を支援するIISExpressの開発者インスタンスを開始しています。通知領域にIIS Expressアイコンが表示されます。右クリックすると、サイトが実行中であることと、VSによって割り当てられたポート(VSPORTと呼びます)が表示されます。これはポートは予約済みポート(50001)とは異なる必要があります。問題なくこれを達成できた場合は、VSなしでサイトを実行するためのほぼすべての準備ができています。

  1. プロジェクトフォルダに移動します
  2. .vsフォルダーに移動
  3. 設定フォルダに移動
  4. Applicationhost.configを開きます。
  5. Sites/your_siteセクションを探します
  6. Your_siteと/ your_siteの間ですべてをコピーします

次に、この情報を「グローバル」に追加する必要がありますIIS Express config。

  1. IIS Expressフォルダ(c:\ Users\USERNAME\Documents\IISExpressなど)に移動します)
  2. 設定フォルダに移動
  3. Applicationhost.configを開きます。
  4. サイトセクションを探します。
  5. サイトに関する情報を貼り付けます。
  6. バインディング

binding protocol = "http" bindingInformation = "*:VSPORT:localhost"

binding protocol = "http" bindingInformation = ":50001:"

  1. 変更内容を保存

この変更により、IISExpress.exeを直接起動でき、VSを引き続き使用してプロジェクトで同時に作業できます。

他のコンピューターからアクセスしたい場合は http:// YOURIP:50001 / としてください。 JavaScriptコードがアドレスとポート番号を直接使用していないことを確認する必要があることを覚えておいてください。

5
Vladimir.RL