26

Web アプリを他のブラウザーでテストしたいと考えています。そのために Virtual PC をインストールしました。ASP.NET 開発サーバーはリモート接続を許可しないため、仮想 PC (ネットワーク上の別のコンピューター) は Web サイトにアクセスできません。

開始されたこの投稿を見つけましたが、解決策はありませんでした。

localhost を使用してもうまくいかないことを理解しています。マシンの IP を使用することについて聞いたことがありますが、正しい IP を取得するにはどうすればよいですか? 私のlynksysルーター管理者を見てください。

自分の IP を取得する場合は、asp.net 開発サーバーがリモート接続を許可していないことを確認してください。どうすれば有効にできますか?

4

8 に答える 8

34

答えはノー(*) です。Windows ファイアウォールの TCP ポートを開いている場合でも、あるマシンの ASP.NET 開発サーバーに別のマシンからアクセスすることはできません。

MSDN の記事「Visual Web Developer の Web サーバーから:

これは、ローカル ホスト シナリオ (Web サーバーと同じコンピューターから参照) で ASP.NET Web ページを提供または実行するために特別に構築されています。

つまり、ASP.NET 開発サーバーは、ローカル コンピューター上のブラウザー要求にページを提供します。別のコンピューターにページを提供しません。さらに、アプリケーション スコープ外のファイルは提供されません。

(*) ローカルにインストールされた IIS からサイトを実行する必要があります... または、次のブログ投稿で説明されているフリーウェアを使用して素敵なハックを行う必要があります。

iPhone Visual Studio ASP.NET 開発サーバーへのアクセス

SPI Port Forwardを使用してデバイス接続を受け入れるには、次の手順を実行します。

「ローカル ポート」をデバイスが接続するポート番号に設定します。私は通常、習慣から 8080 を使用します
「リモート ホスト」を localhost に
設定します 「リモート ポート」を ASP.NET 開発サーバー ポートに設定します

「アクティブ化」ボタンをクリックして、接続の受け入れを開始します

(注:管理者権限でプログラムを開始したことを確認してください)

于 2010-10-29T13:14:55.043 に答える
12

私はここであなたのセットアップについていくつか推測しているので、我慢してください:

仮想マシンが XP Professional、Vista Business、Windows 7 Professional 以上の場合、IIS を開発マシンでローカルに実行し、仮想マシンの名前を介して同じネットワーク上の別のマシンからその Web サーバーにアクセスできるはずです。

同様に、実際のマシンで開発を行っていて、別の仮想マシンを使用して Web アプリケーションにアクセスする場合は、IIS がインストールされていることを確認し、IIS で新しい Web サイトを作成して、仮想マシンからマシン名を介して web アプリケーション。

いずれにせよ、Visual Studio の組み込み Web サーバーを使用しないでください。サイトを IIS に公開して、その方法で操作してください。

頑張ってください。これが役立つことを願っています。

于 2009-11-13T16:39:08.463 に答える
8

ここでRINETD 詳細を使用してポート転送をセットアップし
ます: http://blog.waynehartman.com/articles/218.aspx

于 2011-02-10T14:29:51.827 に答える
7

IIS (またはトンネル) を使用したくない場合の別の回答: https://stackoverflow.com/a/12008223/1552178

ホストでフィドラーなどを使用します。クライアント VM でブラウザーを設定してプロキシを使用し、クライアントで通常どおり localhost:dev_port を使用します。

クライアントからのすべての要求は、開発マシンのローカルホストにルーティングされる開発マシンのプロキシに移動し、ASP.net 開発サーバーは要求が開発マシンからのものであると認識します!

于 2012-08-17T15:08:50.500 に答える
4

IIS なしで動作させるために、この古い質問に答えています。

1. 最初のステップ

Fiddlerをダウンロードする必要があります。

Fiddler をダウンロードしてインストールしたら、それを開きます。

[ツール] -> [フィドラー オプション] -> [接続] タブ -> [リモート コンピューターの接続を許可する] にチェックを入れます。

ここに画像の説明を入力

フィドラーを再起動します。

2. セカンドステップ

この後、ネットワークまたは VM 上の他の PC で、 Internet Explorerを開きます -> [インターネット オプション] -> [接続] タブ -> [LAN の設定] -> [LAN にプロキシ サーバーを使用する] をオンにします

ここに画像の説明を入力

  1. アドレスは、DEV マシンの IP アドレスです。
  2. そして、ポート8888を置きます

これで、ネットワーク上の別の PC から ASP.NET Web サーバーにアクセスできるようになりました (ファイアウォール、無制限のポートなど、さらに多くの設定を行う必要があるかもしれませんが、これは良い出発点です)。

アクセスするには -> http://localhost.:54814

  • 「localhost」の後の追加ポイントを忘れないでください。(ローカル localhost を上書きします)
  • ポート (私の場合は "54814") は、ASP.NET Web サーバーのポートです。

ノート :

  • プロキシが機能するかどうかをテストするには、これを試すことができます: http://localhost.:8888
  • いくつかの構成を指摘するのを忘れたかもしれませんが、それは常にネットワーク インフラストラクチャに依存します。
于 2014-07-10T19:30:05.343 に答える
0

現在の.netフレームワーク[コア/ x-platform ] 6.0リリースを有効にすることを期待していた次のことを試してみました. localhost へのポート転送/プロキシは、Web サーバーのみを公開しました。

Windows wsl [Linux 用 Windows サブシステム] ディストリビューション セッションから asp.net 開発 Web サーバーを起動し、Windows ホスト Wi-Fi アダプターの IP アドレスを使用してアクセスできましたが、サブネット上の別のマシン (vmware Linux インストールなど) からはアクセスできませんでした。ブリッジモードで動作。vmware linuxのインストールをnatモードに切り替えるとうまくいきました。

私が期待したように、これが他のホストのアクセスを許可しない理由について何か考えはありますか?

netsh interface portproxy add v4tov4 listenport=<tcp port for non-localhost access allowed/enabled in windows firewall> listenaddress=0.0.0.0 < or windows wired/wifi ipaddress > connectport=<tcp port for localhost access to asp.net development web server> connectaddress=localhost 

e.g. netsh interface portproxy add v4tov4 listenport=4430 listenaddress=0.0.0.0 connectport=7146 connectaddress=localhost & netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=5038 connectaddress=localhost 

netsh interface portproxy show all 

// for %i in ( 4430, 8080 ) do ( netsh interface portproxy delete v4tov4 listenport=%i listenaddress=0.0.0.0 )

netsh advfirewall firewall add rule name="Asp.Net Development Web Server Listeners to Expose" dir=in protocol=tcp localport=<csv list of tcp ports allowed/enabled in windows firewall> profile=private|any remoteip=localsubnet|any action=allow [ enable=yes ]

e.g. netsh advfirewall firewall add rule name="Asp.Net Development Web Server Listeners to Expose" dir=in protocol=tcp localport=4430,8080 profile=private remoteip=localsubnet action=allow

netsh advfirewall firewall show rule name="Asp.Net Development Web Server Listeners to Expose" [ or wf.msc | inbound rules ]

// netsh advfirewall firewall delete rule name="Asp.Net Development Web Server Listeners to Expose"
于 2021-10-03T18:19:12.727 に答える
-4

コマンド プロンプトを開き、次のように入力します。「ipconfig」これにより、マシンのIPアドレスが得られます。

ファイアウォールを無効にすると (少なくとも asp.net dev ポートでは)、仮想 PC のブラウザにhttp://192.168.1.3:3243/default.aspxと入力できるはずです。

于 2009-11-13T16:36:12.823 に答える