Visual studio 为VS2010项目的外部访问配置IIS Express

Visual studio 为VS2010项目的外部访问配置IIS Express,visual-studio,visual-studio-2010,iis-express,Visual Studio,Visual Studio 2010,Iis Express,我正在VS2010中开发一个项目,可以通过IIS Express在本地查看我的站点。我想通过网络启用外部访问 我所有的研究都将我发送到了以下博客条目:,这很有帮助,但似乎没有显示如何为在visual studio中启动的项目配置绑定(我在屏幕截图中找不到屏幕,我在applicationhost.config中编辑了绑定信息,但在从visual studio运行站点时似乎没有反映出来) <bindings> <binding protocol="http" bindingIn

我正在VS2010中开发一个项目,可以通过IIS Express在本地查看我的站点。我想通过网络启用外部访问


我所有的研究都将我发送到了以下博客条目:,这很有帮助,但似乎没有显示如何为在visual studio中启动的项目配置绑定(我在屏幕截图中找不到屏幕,我在applicationhost.config中编辑了绑定信息,但在从visual studio运行站点时似乎没有反映出来)

<bindings>
  <binding protocol="http" bindingInformation="*:8080:*" />
</bindings>
3最后,您需要适当的防火墙条目。为此,最容易使用“具有高级安全性的Windows防火墙”控制台

在“入站规则”下选择“新规则…”

  • 规则类型为“自定义”
  • 程序是服务->自定义…->仅适用于服务。 (虽然IIS Express不是服务,但它使用的HTTP多路复用器是)
  • 协议是TCP
  • 特定端口:列出所有IIS Express绑定的所有端口。您可以随时返回此规则并添加端口。(如果这变得令人厌烦,您可能会添加一个范围,例如
    40000-65534
    ,该范围涵盖了Visual Studio使用的整个范围,但请注意,这不太安全)
  • 操作是“允许连接”
  • 配置文件将是以下内容之一。如果有疑问,请选择“域+专用”。
    • “域”,如果您的是公司桌面,并且仅在本地域上运行
    • “域+私有”如果您是非公司环境中的私有开发机器,或者是在家工作时也需要工作的公司笔记本电脑
    • “域、私有和公共”,如果您需要在非私有网络上进行演示
  • 名称应该类似于“IIS Express开发服务器”

    • 我也在这个问题上花了数小时,试图从我的Android Xoom浏览到我的win7开发机器,以便测试我创建的一个新asp.net web应用程序。我所做的只是将IISExpress的applicationhost.config从使用PC主机名更改为我的新站点的当前IP地址

      <binding protocol="http" bindingInformation="*:80:dev-Lee" />
      
      
      

      
      
      一旦我这么做了&重新开始IISExpress。。。我可以浏览到我的dev Lee机器&从我的Xoom中查看我的应用程序

      如果您的外部域名是“name.mydyndns.com”,那么您需要写:

      <binding protocol="http" bindingInformation="*:name.mydyndns.com" />
      
      
      

      这适用于Windows 2003 Server和IIS 7.5 Express。

      我们可以通过编辑IIS Express的applicationhost.config添加多个绑定地址

      <bindings>
         <binding protocol="http" bindingInformation="*:62217:localhost" />
         <binding protocol="http" bindingInformation="*:62217:192.168.0.5" />
         <binding protocol="http" bindingInformation="*:62218:192.168.0.5" />
      </bindings>
      
      
      
      现在我们可以使用IP地址从lan访问网站


      我在visual studio 2012中遇到了很多麻烦,从404个错误变为503个错误。最终对我有效的是清除IIS Express配置中的所有相关配置

      "\Program Files (x86)\IIS Express\appcmd.exe" list site
      "\Program Files (x86)\IIS Express\appcmd.exe" delete site xxx
      "\Program Files (x86)\IIS Express\appcmd.exe" delete site yyy
      
      然后,我从VS中web项目的属性页创建了一个新的虚拟目录,但在创建虚拟目录之前,我更改了主机名,然后点击创建虚拟目录按钮。 以前,我一直收到错误,说主机名必须是“localhost”,但这次没有。在那之后,它成功了


      简言之,首先清除现有配置,然后重新启动。

      Visual Studio 2013 SP1及以上版本(2015)包括设置“将服务器设置应用于所有用户(存储在项目文件中)”。这是默认启用的。启用此选项后,Visual Studio将启动带有命令行参数的IIS Express,使其使用不同的配置文件。“applicationhost.config”文件的位置位于“.vs\config”中的项目目录下。


      在IIS上的应用程序池中,将“启用32位应用程序”设置为“true”。

      我们制作了一个名为“传送带”的免费VS(2012、2013、2015)扩展,允许此功能-您可以通过工具->扩展。。。如果您正在使用Visual Studio,请按照以下步骤访问IIS Express over IP地址:

    • 在Windows命令行中获取主机IP地址:
      ipconfig
    • GoTo$(SolutionDir.vs\config\applicationHost.config
    • 查找
      
      
    • 加:

      用你的IP地址
    • 使用管理员权限运行VisualStudio,一切正常
    • 如果您尝试从远程连接,可能会发现一些防火墙问题

    • 线索是,VisualStudio有自己的applicationHost.config文件

      @user578913,因此我最终找到了正确的applicationhost.config文件,方法是打开正在运行的IIS Express任务栏并单击它,然后单击指向配置文件的链接。我在第二行将端口设置为1063,因为第一行已经设置为1063。运行了你的命令行,一切看起来都很好。当我在网络上的另一台机器上访问或从中访问时,仍然什么也得不到。好的,由于Visual Studio分配了一个端口(8080除外),Windows防火墙阻止了它。在关闭Windows防火墙(我可以说只是打开端口,但我在一个安全的网络上)并使用我的机器的IP而不是机器名之后,它工作了。谢谢我会投赞成票,但还没有代表=(是的,如果Windows防火墙需要打开,那么您可以显式添加TCP端口8080(或您使用的端口)。在Windows 7中,最初我尝试将端口分配给“IIS Express Worker Process”。但它不起作用。我必须使用“新规则”选项并允许端口8080。选择配置文件(域、私有、公共)这一点也很重要。Self注意:如果您的访问被拒绝,请以管理员身份运行Visual Studio。从VS2015开始,文件位置是
      C:\\.vs\config\applicationhost.config
      (谢谢,@Talon)。请阅读Scott Hanselman的博客文章。我使用所有这些解决方案获得的所有可能的副本都是一个er
      <bindings>
         <binding protocol="http" bindingInformation="*:62217:localhost" />
         <binding protocol="http" bindingInformation="*:62217:192.168.0.5" />
         <binding protocol="http" bindingInformation="*:62218:192.168.0.5" />
      </bindings>
      
      "\Program Files (x86)\IIS Express\appcmd.exe" list site
      "\Program Files (x86)\IIS Express\appcmd.exe" delete site xxx
      "\Program Files (x86)\IIS Express\appcmd.exe" delete site yyy