Is There a Way to Make Remote Calls to ASP.NET Development Web Server?

两盒软妹~` 提交于 2019-11-26 22:57:20

问题


I know that generally speaking, this cant be done, that is get another PC to call a site hosted under the ASP.NET DEvelopment Web Server remotely (generally you can only use localhost:port to get to it).

But I was wondering if anyone has seen, or knows of a way to get around it? I am a RESTful API developer in my office, and I would like the PHP guys to test the APIs on my machine so that I can have the Visual Studio 2005 debugger attached, and I can more easily find problems.

THe main issue is, that my machine is a Vista machine, and unfortunately, the APIs I have developed do not work under IIS7, even Classic Application Pool mode (which eliminates hosting them on a local IIS impossible).

Alternatively, is there a way to use IIS6 on another machine to suite my needs?

Update

Based on the advise that I have gotten and after much trial and error with the suggestions made, I was able to get Squid to act as a reverse-proxy and do exactly what I wanted to do. I have blogged about it http://www.ashleyangell.com/index.php/2009/03/configuring-a-basic-reverse-proxy-in-squid-on-windows-website-accelerator/ in case anyone else wants to do the same thing.


回答1:


Can't you just run IIS7 in Classic Application Pool mode?

The Development Web Server is strictly limited to Localhost, you would either need to decompile and recompile it, or set up some kind of Proxy on your machine.

And on an unrelated Topic: Even though Win2003 Server SP2 R2 should be supported up to March 2012, maybe IIS7 Support should be added to your application to make sure you can run on 2008 Server as well.




回答2:


This is substantially easier than the Squid option:

"Accessing the Visual Studio ASP.NET Development Server from iPhone"

Also there is an update that works well under Windows 7, too:

"iPhone Accessing the Visual Studio ASP.NET Development Server - Windows 7 Update"




回答3:


I have just tried http://code.activestate.com/recipes/483732-asynchronous-port-forwarding/ successfully. It's a Python script that just forwards the traffic.

Assuming the machine your dev server runs on is 192.168.42.42 and the dev server is on port 12345, run the script (on the same machine) with the command line arguments

-l 192.168.42.42 -p 8000 -r 127.0.0.1 -P 12345

From a different machine, you can then access the server via http://192.168.42.42:8000.

Be sure to change sender.handle_close as noted by Dwight Walker in the comments:

def handle_close(self):
    self.close()
    if len(self.receiver.to_remote_buffer) == 0:
        self.receiver.close()



回答4:


You can debug remotely to a computer with IIS6. Check this blog post on how to set it up: http://blogs.iis.net/brian-murphy-booth/archive/2008/05/23/remoting-debugging-asp-net-applications-using-visual-studio-2008.aspx

Here is a link for vs2005: http://aspnet2holes.blogspot.com/2006/11/debug-aspnet-20-running-under-iis-60.html. I still recommend to check the 2008 one, just for some extra comments it has.




回答5:


Basically i spent 5 hours making this work, and ultimately if you want a 5 min fix here goes:

1. Port forward incoming traffic to your local ip on your network
TCP Any -> 3127-3128
TCP Any -> 80-81
TCP Any -> 8080
TCP Any -> 8000
TCP Any -> 8888
to
192.1681.1.3 (the local ip of the machine running .NET Dev server.)

2. Download SPI Port Forward

3. Heres the tricky part - Setup 2 forwarding rules as follows:
Local port: 8080 Remote: localhost Remote port 8080
Local port: 8080 Remote: localhost Remote port: .NET Dev server port

Without that second rule the .NET dev server wont serve the page

4. now visit your public IP address at port 8080 -- and you got it

Z




回答6:


You might want to take a look at UltiDev's version of the Cassini web server. They took the Microsoft Open Source Cassini web server and enhanced it to allow among other things, remote connections.

You can attach VS to the process, and watch your RESTful APIs being called from the PHP application, exactly as you describe above.




回答7:


Just use a simple Java TCP tunnel. Download this Java app & just tunnel the traffic back. No messing with IIS necessary!

http://jcbserver.uwaterloo.ca/cs436/software/tgui/tcpTunnelGUI.shtml

In command prompt, you'd then run the java app like this... Let's assume you want external access on port 80 and your standard debug environment runs on port 1088...

java -jar tunnel.jar 80 localhost 1088 (Also answered here: Accessing asp. net development server external to VM)




回答8:


Switching IIS 7 to Classic pipeline does not resolve your compatibility issues? VS 2005 has a remote debugger, as did many versions before that.




回答9:


YES THERE IS! :D

I was also looking around to overcome this limitation for some time and accidentally I stumbled upon following article:

http://eeichinger.blogspot.com/2009/12/sniff-http-traffic-with-aspnet.html

I haven't tried it myself yet, but looks quick & simple (although some may say this is hardcore).
BTW. I recommend you look at some other posts at Erich Eichinger's blog, since there's more really valuable stuff.




回答10:


This post helped me: http://staticvoidmain.cognitioab.se/index.php/2013/01/remote-debugging-asp-net-development-server-with-spi-port-forward/ It suggests using a third-party application on your developer machine to act as a proxy (sort of). So you connect to this app, and it forwards all your requests to the development server. Works like magic :)



来源:https://stackoverflow.com/questions/652777/is-there-a-way-to-make-remote-calls-to-asp-net-development-web-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!