19

知道一般来说,这是做不到的,那就是让另一台PC远程调用托管在ASP.NET DEvelopment Web Server下的站点(一般只能使用localhost:port来访问它)。

但我想知道是否有人看到或知道绕过它的方法?我是我办公室的 RESTful API 开发人员,我希望 PHP 人员在我的机器上测试 API,以便我可以连接 Visual Studio 2005 调试器,并且我可以更轻松地发现问题。

主要问题是,我的机器是 Vista 机器,不幸的是,我开发的 API 不能在 IIS7 下工作,即使是经典应用程序池模式(这消除了在本地 IIS 上托管它们是不可能的)。

或者,有没有办法在另一台机器上使用 IIS6 来满足我的需求?

更新

根据我得到的建议,经过多次试验和错误,我能够让 Squid 充当反向代理,并完全按照我的意愿去做。我已经在博客上写了http://www.ashleyangell.com/index.php/2009/03/configuring-a-basic-reverse-proxy-in-squid-on-windows-website-accelerator/以防其他人想要做同样的事情。

4

9 回答 9

14

这比 Squid 选项要容易得多:

“从 iPhone 访问 Visual Studio ASP.NET 开发服务器”

此外,还有一个在 Windows 7 下也能正常运行的更新:

“iPhone 访问 Visual Studio ASP.NET 开发服务器 - Windows 7 更新”

于 2010-05-25T10:13:41.810 回答
7

我刚刚成功地尝试了http://code.activestate.com/recipes/483732-asynchronous-port-forwarding/。这是一个仅转发流量的 Python 脚本。

假设您的开发服务器运行的机器是192.168.42.42并且开发服务器在端口12345上,使用命令行参数运行脚本(在同一台机器上)

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

然后,您可以从另一台机器上通过http://192.168.42.42:8000.

请务必sender.handle_close按照 Dwight Walker 在评论中的说明进行更改:

def handle_close(self):
    self.close()
    if len(self.receiver.to_remote_buffer) == 0:
        self.receiver.close()
于 2010-08-14T18:47:41.567 回答
3

你不能在经典应用程序池模式下运行 IIS7吗?

开发 Web 服务器严格限制为 Localhost,您要么需要反编译并重新编译它,要么在您的机器上设置某种代理。

还有一个不相关的主题:即使 Win2003 Server SP2 R2 应该支持到 2012 年 3 月,也许应该将 IIS7 支持添加到您的应用程序中,以确保您也可以在 2008 Server 上运行。

于 2009-03-17T02:03:59.890 回答
2

基本上我花了 5 个小时来完成这项工作,最终如果你想要一个 5 分钟的修复,那就去:

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

于 2012-10-18T05:34:14.080 回答
1

您可能想查看 UltiDev 的Cassini Web 服务器版本。他们采用了 Microsoft 开源 Cassini Web 服务器并对其进行了增强,以允许远程连接等。

您可以将 VS 附加到该进程,并观察从 PHP 应用程序调用的 RESTful API,正如您在上面描述的那样。

于 2009-03-17T16:47:11.250 回答
1

只需使用一个简单的 Java TCP 隧道。下载这个 Java 应用程序,然后将流量返回。无需弄乱 IIS!

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

在命令提示符下,您将像这样运行 java 应用程序...假设您希望在端口 80 上进行外部访问,并且您的标准调试环境在端口 1088 上运行...

java -jar tunnel.jar 80 localhost 1088(也在这里回答:Accessing asp.net development server external to VM)

于 2011-09-12T22:55:58.807 回答
0

将 IIS 7 切换到经典管道并不能解决您的兼容性问题?VS 2005 有一个远程调试器,之前的许多版本也是如此。

于 2009-03-17T02:06:05.550 回答
0

就在这里!:D

我也在四处寻找以克服这个限制一段时间,无意中我偶然发现了以下文章:

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

我自己还没有尝试过,但看起来又快又简单(尽管有些人可能会说这是硬核)。
顺便提一句。我建议您查看Erich Eichinger 博客上的其他一些帖子,因为这里有更多真正有价值的东西。

于 2010-02-10T13:36:45.900 回答
0

这篇文章帮助了我: http ://staticvoidmain.cognitioab.se/index.php/2013/01/remote-debugging-asp-net-development-server-with-spi-port-forward/ 它建议使用第三方您的开发人员机器上的应用程序充当代理(有点)。所以你连接到这个应用程序,它会将你的所有请求转发到开发服务器。像魔术一样工作:)

于 2013-09-04T09:51:01.403 回答