我有一个在本地开发机器上的 Windows Azure 开发实例上运行的项目。
我有一个 运行在 : 上的Web 项目http://127.0.0.1:8080
和一个运行在http://127.0.0.1:81
我想让这两个项目在我的局域网上本地可用以进行开发。
我已关闭防火墙并从防火墙设置中取消阻止端口 8080 和 81。但这仍然行不通。
你能帮我解决这个问题吗?
谢谢你。
就像 Brent 解释的那样,最好的解决方案是在云中进行测试(例如在暂存环境中)。有很多示例可以帮助您将其集成到构建过程中。另一方面,您将为此测试环境付费,这可能并不总是一种选择。
允许外部访问您的模拟器非常简单,只需使用 netsh(包含在 Windows 中):
netsh interface portproxy add v4tov4 listenport=10081 connectport=81 connectaddress=127.0.0.1
netsh interface portproxy add v4tov4 listenport=18080 connectport=8080 connectaddress=127.0.0.1
执行这些命令将使您的 Web 项目在http://10.1.1.x:18080 上可用,您的服务项目在http://10.1.1.x:10081上可用(将 10.1.1.x 替换为您的实际 ip)。请注意,您可能需要打开计算机上的防火墙以允许外部连接到这些端口。
未创建本地开发模拟器以允许外部访问开发中应用程序的其他服务。虽然有一些不支持的黑客使这成为可能,但官方建议是在云中运行此类服务并从那里访问它们。我意识到这会使调试变得更加困难,但这通常可以通过远程进入托管应用程序的来宾 VM 和/或启用 Intellitrace(前提是您有 VS Ultimate)来解决。或者,正确检测您的应用程序也可以提供适当的证据来帮助解决任何问题。
由于您要求“破解”Windows 8 上的当前一个,AFAIK 将转到(假设此处为默认目录结构):
C:\Program Files\Microsoft SDKs\Windows Azure\Emulator\devfabric
并编辑两者:
IISConfigurator.exe.config
IISConfigurator.exe.express.config
并修改 /configuration/appSettings 以包含一个项目,显然将“YOUR IP ADDRESS HERE”替换为您的实际 IP 地址,例如 192.168.1.71。这是一个例子:
<!-- these settings are for the devfabric scenario -->
<appSettings>
<add key="SetupCloudDriveDevPath" value="true"/>
<add key="SetupMachineKeys" value="false"/>
<add key="FixedSiteBindingIpAddress" value="192.168.1.71"/>
</appSettings>
调试器仍将打开到源 127.0.0.1:8* 位置,但只需将 127.0.0.1 替换为您的本地 IP 地址。此外,您可能必须重新启动 Windows 7 才能使这些更改生效,并且您希望以管理员身份编辑配置文件,因为它们受到保护。