Visual studio 如何在本地IIS7服务器上运行(调试)WCF REST服务应用程序

Visual studio 如何在本地IIS7服务器上运行(调试)WCF REST服务应用程序,visual-studio,wcf,visual-studio-2010,iis,iis-7,Visual Studio,Wcf,Visual Studio 2010,Iis,Iis 7,正如问题所说,我在本地IIS上运行web应用程序时遇到问题 以下是我的情况: 运行在Linux Ubuntu上的Oracle VM VirtualBox上的WIndows 桥接适配器,以便Windows box从我的路由器获取本地IP Visual Studio 2010+sp 用于项目模板的WCF REST服务应用程序插件 应用程序在使用visual studio development server(在本地主机上)时运行 目标框架是v4.0 我需要的是,应用程序在IP上运行,而不是在本地

正如问题所说,我在本地IIS上运行web应用程序时遇到问题

以下是我的情况:

  • 运行在Linux Ubuntu上的Oracle VM VirtualBox上的WIndows
  • 桥接适配器,以便Windows box从我的路由器获取本地IP
  • Visual Studio 2010+sp
  • 用于项目模板的WCF REST服务应用程序插件
  • 应用程序在使用visual studio development server(在本地主机上)时运行
  • 目标框架是v4.0
我需要的是,应用程序在IP上运行,而不是在本地主机上运行(这样我就可以在LAN中的远程计算机上使用它),所以我配置了IIS7

以下是IIS配置:

  • 我用TargetFramework v.4.0创建了一个网站
  • 我将站点绑定到端口80上的本地IP
  • 作为默认文档,站点的路径为/inetpub/wwwroot iisstart.htm
  • IIS运行正常。如果我打开“http://my_local_ip“我得到了欢迎标志
问题出在VisualStudio中

当我转到项目属性“Web”部分并选择本地IIS over vsd服务器时,我会迷路。如果我将“项目URL”设置为“http://my_local_ip/some_name“visual studio抱怨找不到IIS服务器,因此无法创建虚拟目录。我尝试在IIS管理器中手动添加虚拟目录,但没有效果。如果我使用“http://localhost/some_name作为“项目URL”,虚拟目录被创建,但它没有任何意义,是吗

有人能告诉我吗

如果我使用“”作为“项目URL”,则会创建虚拟目录,但这毫无意义,是吗

我认为你在这里混合了两种不同的东西。当您要求VS使用localhost作为项目的IIS服务器时,它将连接到本地IIS以执行配置任务。如果您要求VS使用“my_local_ip”,您告诉VS您的IIS服务器是远程的,因此VS将使用远程管理来配置IIS(VS无法知道my_local_ip是本地计算机)

但默认WinServer框上未启用远程IIS管理。此外,它还需要一些额外的网络配置。因此,您应该告诉vs使用本地服务器

事实上,IIS站点绑定和VS部署参数完全不同。因此,在上部署您的站点

但是,我不太喜欢使用VS debugging deploy部署真正的应用程序。该目录将包含您的所有项目文件。。。你应该:

  • 在IIS管理器上创建站点并设置虚拟目录
  • 或者
    • 要求VS将站点发布到一个目录(您的虚拟目录)
    • 要求VS发布WebDeploy包,然后要求IIS管理器导入该包

  • 谢谢你的解释。但是我不明白你的建议(我是国际空间站的新手)。我在ISS manager的网页上创建了一个别名为“service”的虚拟目录,并将物理路径设置为/inetpub/wwwroot/service。如果我理解,VS应该在我构建/运行应用程序后将文件复制到此目录?在VS中,我选择了本地IIS和“项目URL”作为“”。VS不知何故不知道虚拟目录已经创建,并且尝试创建虚拟目录失败。。。对不起,我以前真的从来没有这样做过!好的,我以某种方式创建了虚拟目录,以便VS对它感到满意。虚拟目录的详细信息是:我创建了一个文件夹/inetpub/wwwroot/service,并将该文件夹设置为虚拟目录的物理路径。别名是服务。在VS中使用它不会给我带来任何错误。但是,当我运行应用程序VS时,会抛出一个错误:无法在web服务器上开始调试。web服务器找不到请求的资源。我错过了什么?好吧,早些时候取得了一些进展。我能够在IIS上发布应用程序。在虚拟目录中,我现在有bin文件夹global.asax和web.config。我现在需要做的就是弄清楚为什么IIS不会运行这个应用程序。目前它要求我设置默认文档或启用目录浏览,但这并不是我的目标。调试和部署实际上是两回事。如果选择了IIS调试,VS在启动应用程序进行调试时所做的只是“将调试器附加到w3wp.exe”。当您将项目配置为使用IIS调试时,VS将创建绑定到项目目录的虚拟目录。关键是:运行IIS上托管的Web应用程序不需要VS。如果你不想混合生产和调试,你可以安装IISExpress,可以通过web平台安装程序获得。我知道Eilistraee的区别,但是谢谢你的解释。我同意“部署”应用程序的唯一目的是能够使用我的linux机器上的服务,我在那里开发Android应用程序。我按照你的建议和IISExpress一起创建了这个网站。它从windows box上的VS进行调试,没有错误。你知道我必须做些什么才能从同一局域网中的linux设备访问该站点吗?