Accessing ASP.NET Development Server from another pc on the network
Asked Answered
P

9

26

I would like to test my web app in other browsers. I have installed Virtual PC to do just that. the ASP.NET development server does not allow remote connections so the virtual pc (another computer on the network) cannot access the website.

I found this post that was started but there was no solution.

I understand that using localhost will not work. I heard about using the machines ip, but how do I get that correct ip? Look at my lynksys router admin?

If I were to get as far as getting my IP, im sure that the asp.net dev server does not allow remote connections. How do I enable it to do so?

Poignant answered 13/11, 2009 at 16:23 Comment(2)
It that simple: just check out the answer: https://mcmap.net/q/361115/-can-i-access-asp-net-development-server-in-an-intranet and setup yourself a similar tunnelLorindalorine
SharpProxy works really well github.com/jocull/SharpProxyResemblance
R
12

I'm making some guesses about your setup here so bear with:

If your virtual machine is XP Professional, Vista Business, Windows 7 Professional or better, then you should be able to run IIS locally on the development machine and access that webserver from another machine which is on the same network via the virtual machine's name.

Likewise, if you're doing development on a real machine and would like to use different virtual machines to access the web application, you should make sure that you have IIS installed, create a new website in IIS and you should be to browse to the web application via machine name from your virtual machines.

Either way, don't try to use the builtin web server from Visual Studio, just publish your site to IIS and work with it that way.

Good luck and hope this helps some.

Reason answered 13/11, 2009 at 16:39 Comment(2)
Hi Chris, Without IIS, its also possible to host using WebDev and IISExpress, in that case we are not able to access via remote machine; Any idea in this case?Mairamaire
Not a chance without IIS.Douty
C
34

The answer is: no(*). You cannot access the ASP.NET Development Server on one machine from another, even if you open the Windows firewall TCP port.

From the MSDN article "Web Servers in Visual Web Developer":

It is specifically built to serve, or run, ASP.NET Web pages under the local host scenario (browsing from the same computer as the Web server).

In other words, the ASP.NET Development Server will serve pages to browser requests on the local computer. It will not serve pages to another computer. Additionally, it will not serve files that are outside of the application scope.

(*) You'll have to run your site from your locally installed IIS... or do the nice hack using some freeware described in this blog post:

iPhone Accessing the Visual Studio ASP.NET Development Server

Use SPI Port Forward to accept the device connections do the following:

Set "Local port" to the port number the device will connect on, I usually use 8080 out of habit
Set "Remote host" to localhost
Set "Remote port" to the ASP.NET Dev Server Port

Click the "Activate" button to start accepting connections

(note: make sure you've started the program with admin rights)

Casting answered 29/10, 2010 at 13:14 Comment(0)
R
12

I'm making some guesses about your setup here so bear with:

If your virtual machine is XP Professional, Vista Business, Windows 7 Professional or better, then you should be able to run IIS locally on the development machine and access that webserver from another machine which is on the same network via the virtual machine's name.

Likewise, if you're doing development on a real machine and would like to use different virtual machines to access the web application, you should make sure that you have IIS installed, create a new website in IIS and you should be to browse to the web application via machine name from your virtual machines.

Either way, don't try to use the builtin web server from Visual Studio, just publish your site to IIS and work with it that way.

Good luck and hope this helps some.

Reason answered 13/11, 2009 at 16:39 Comment(2)
Hi Chris, Without IIS, its also possible to host using WebDev and IISExpress, in that case we are not able to access via remote machine; Any idea in this case?Mairamaire
Not a chance without IIS.Douty
D
8

Setup a portforwarding using RINETD
Deatils here: http://blog.waynehartman.com/articles/218.aspx

Dysphemia answered 10/2, 2011 at 14:29 Comment(1)
tried on Win7 but all I get is 'couldn't bind to address x.x.x.x. port yyyy' whichever IPs and port numbers I tryOldie
C
7

Another answer if you don't want to use IIS (or tunnels): https://mcmap.net/q/361115/-can-i-access-asp-net-development-server-in-an-intranet

Use fiddler or similar on your host - set your browser on the client VM to use the proxy then just use localhost:dev_port as usual on the client.

All requests from the client goto the proxy on your dev machine which routes to localhost on the dev machine and the ASP.net dev server thinks the request is from your dev machine!

Casiecasilda answered 17/8, 2012 at 15:8 Comment(1)
Surely this should be the top answer, everyone has already got this installed. Thanks. (you have to allow remote connection inside fiddler though).Ferrer
B
4

I am answering this old question to help people to make it work without IIS.

1. First Step

You have to download Fiddler.

Once Fiddler is downloaded and installed, open it.

Go in Tools-> Fiddler Option-> Connection tab-> And check "Allow remote computers to connect" :

enter image description here

Restart Fiddler.

2. Second Step

After this, in the other PC on the network OR the VM, open internet explorer-> Internet Options-> Connection Tab-> Lan Settings-> Check "Use a proxy server for your LAN" :

enter image description here

  1. The adress is the IP adress of your DEV machine.
  2. And put the port 8888

Now, you can access the ASP.NET Web Server from another PC on the network (maybe you have, more config to do, like firewall, unrestricted port, etc, but this is a good start) !

To access it -> http://localhost.:54814

  • Don't forget the additional point after "localhost" ! (Overwrite the local localhost)
  • The port, "54814" in my case, is the ASP.NET Web Server port.

NOTE :

  • To test if the proxy work, you can try this : http://localhost.:8888
  • Maybe I forgot to point out some configurations, but it always depend of the network infrastructure.
Bandur answered 10/7, 2014 at 19:30 Comment(4)
i have tried the above but it is show The proxy server is refusing connectionsLanti
Did you check "Allow computer connection" ?Tolerant
which conection i have to allow on computer??Lanti
Step 1 : Once Fiddler is downloaded and installed, open it. Go in Tools-> Fiddler Option-> Connection tab-> And check "Allow remote computers to connect" :Tolerant
B
1

Working solution for Linux

This should work if you're running an ASP.NET Dev Server on Windows in a VM or on another host and you want to access it from Linux

On Windows machine

For some reason you cannot connect directly to the ASP.NET dev server port, you need to proxy it locally first:

Use SPI Port Forward to accept the device connections do the following:

Set "Local port" to the port number the device will connect on, such as 8089 Set "Remote host" to localhost
Set "Remote port" to the ASP.NET Dev Server Port

Click the "Activate" button to start accepting connections

(note: make sure you've started the program with admin rights)

On Linux machine

Locally forward localhost port 8089 to the windows IP (replace GUEST_IP_HERE with the correct ip):

iptables -t nat -A OUTPUT -m addrtype --src-type LOCAL --dst-type LOCAL -p tcp --dport 8089 -j DNAT --to-destination GUEST_IP_HERE:8089
iptables -t nat -A POSTROUTING -m addrtype --src-type LOCAL --dst-type UNICAST -j MASQUERADE

This is needed because the dev server specifically looks for localhost in the request and will not respond to http://GUEST_IP_HERE:8089 from the host

Buxom answered 21/2, 2017 at 20:4 Comment(0)
I
0

I tried the following that i expected to enable current .net framework [ core / x-platform ] 6.0 release provided asp.net development web server access at least from other machines on local subnet w/o needing to use any 3rd party software enable the port forwarding/proxy to localhost only exposed web server.

I was able to launch the asp.net development web server from windows wsl [ windows subsystem for linux ] distro session and access it using the windows host wi-fi adapter ip address but not from another machine on my subnet, e.g. a vmware linux install operating in bridge mode. It did work if i switched vmware linux install to nat mode.

Any thoughts on why this doesn't allow other hosts access as i expected it would?

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"
Iiette answered 3/10, 2021 at 18:19 Comment(0)
E
0

year 2022:

After trying everything on asp.net core .NET 6 side and failed I have found https://mitmproxy.org/

mitmproxy --mode reverse:https://localhost:7053 --ssl-insecure

covers my use case.

on phone and other devices access with http://{your-pc-ip}:8080

Eclat answered 17/5, 2022 at 1:53 Comment(0)
G
-4

Open a command prompt and type; "ipconfig" this will give you your machines IP address.

If you disable your firewall (for the asp.net dev port at least) you should be able to type into the virtual PC's browser http://192.168.1.3:3243/default.aspx

Generalize answered 13/11, 2009 at 16:36 Comment(1)
This doesn't work. It's not that simple. The Development Server is designed to accept only connection from the same machine.Casting

© 2022 - 2024 — McMap. All rights reserved.