我有一个在本地开发机器上的Windows Azure开发实例上运行的项目。
我有一个运行于的{strong> Web项目:http://127.0.0.1:8080
以及在http://127.0.0.1:81
我想在我的局域网上本地提供这两个项目以供开发。
我已切换防火墙并从防火墙设置中取消阻止端口8080和81。但这仍然行不通。
你可以帮我解决这个问题吗?
谢谢。
答案 0 :(得分:2)
未创建本地开发模拟器以允许在开发应用程序中外部访问其他服务。虽然有一些不支持的黑客可以实现这一点,但官方的建议是在云中运行这些服务并从那里访问它们。我意识到这可能会使调试变得更加困难,但这通常可以通过远程访问托管应用程序的来宾VM和/或启用intellitrace(提供VS Ultimate)来解决。或者,正确检测您的应用程序也可以提供适当的证据,以帮助解决任何问题。
答案 1 :(得分:2)
就像布伦特解释的那样,最好的解决方案是在云中进行测试(例如在临时环境中)。有很多示例可以帮助您在构建过程中集成它。另一方面,您将为此测试环境付费,而这可能并不总是一种选择。
允许外部访问您的模拟器非常简单,只需使用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上的服务项目上可用(用您的实际IP替换10.1.1.x)。请注意,您可能需要在计算机上打开防火墙以允许外部连接到这些端口。
答案 2 :(得分:0)
由于您要求“hack”,Windows 8上的当前版本(AFAIK)将转到(假设此处为默认目录结构):
C:\Program Files\Microsoft SDKs\Windows Azure\Emulator\devfabric
并编辑两者:
IISConfigurator.exe.config
IISConfigurator.exe.express.config
并修改/ configuration / appSettings以包含项目显然会将您的“IP地址”替换为您的实际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*位置,但只需用您的本地IP地址替换127.0.0.1。此外,您可能必须重新启动Windows 7才能使这些更改生效,并且您希望以管理员身份编辑配置文件,因为它们受到保护。