如何在我的本地应用程序中启用远程访问 - IIS Windows 10

时间:2017-01-21 17:32:51

标签: c# asp.net asp.net-mvc iis iis-7.5

我的机器上有一个应用程序,我可以通过localhost / myapplication正常访问它,但是我正在与支付网站进行集成,这个网站需要一个网址来向我发送有关交易状态的通知,我知道如果我把我的应用程序联机,它将访问我的通知URL,但我需要在本地调试它。有一种方法可以访问我的应用程序即使在我的机器上? 我做了很多关于如何将IIS放到网上的研究,但它只是发现线程解释了它是如何只在我所在的同一网络中进行的。 我正在使用Windows 10和IIS,在asp.net mvc和C#

上构建

2 个答案:

答案 0 :(得分:0)

我目前采取的方法是下载我们的免费VS扩展名为Conveyor https://visualstudiogallery.msdn.microsoft.com/a429dbb7-a982-4541-b401-934375c02c0f?redir=0

它允许localhost下的计算机连接到您的IIS Express应用程序。目前还不够,因为你还需要通过互联网连接到它。我们实际上正致力于支持这一功能。

如果您能够将外部端口转发到您的计算机,那么您可以这样做。例如,在家庭网络中,只需进入您的路由器,并设置一个任意端口转发到您的计算机,因此我们假设将端口50000转发到您的计算机的IP并为其提供运行Conveyor的端口(通常为45455)。

然后,您可以使用网络的公共IP和端口50000连接到您的应用。

EG。在家庭网络上,您的路由器可能具有公共IP 96.97.98.0,因此您可以使用支付系统中的地址https://96.97.98.0:50000

答案 1 :(得分:0)

我在IIS Express中遇到了类似的问题。我需要从连接到家庭网络的虚拟机访问本地网站。

默认情况下,IIS Express会侦听TCPv6端口。所以我不得不将它转发到我的网络接口上的某个TCPv4端口。

例如,如果您的网站在localhost:60000运行,并且您希望可以在192.168.1.50:3000访问它,则可以在管理控制台或PowerShell下执行以下操作:

PS C:\Windows\system32> netsh
netsh>interface
netsh interface>portproxy
netsh interface portproxy>add v4tov6 listenport=3000 connectaddress=[::1] connectport=60000

现在,当您打开http://localhost:3000/http://192.168.1.50:3000/时,您会看到您的网站在60000端口上运行。

以下是关于此问题的博客文章 - http://programmingflow.com/2017/02/25/iis-express-on-external-ip.html

解决方案是永久性的,您不需要在重新启动后重复配置,也不需要任何第三方软件或更改您网站的配置。

唯一需要进行一些调整的方法是确保您的请求中包含正确的Host HTTP标头,否则IIS Express可能会因400 Bad request错误而拒绝它们。