在 Visual Studio 的同一端口上运行两个应用程序

3 c# asp.net-mvc visual-studio-2010 asp.net-web-api

我在不同的端口运行了两个应用程序。

一种是: http://localhost:12345/

另一个是: http://localhost:50949/

现在我遇到了 cors 域问题,所以我想在 vs 2012 中的相同端口号上运行这些应用程序

我该怎么做?

sno*_*FFF 7

我正在添加另一个选项的另一个答案。使用成熟的 IIS 有一些优势,但并不是每个人都安装了它,甚至可以选择安装它。默认情况下,Visual Studio 将为每个项目分配端口并在 IIS Express 中创建它们。但是,您可以在项目属性中轻松覆盖它。

例如,我可能有两个如下所示的项目:

  1. MyNamespace.Web(当前监听端口 12345)
  2. MyNamespace.Web.Api(目前正在监听端口 54321)

当我部署这些时,我将在不同的虚拟目录中运行它们,如下所示:

  1. http://mysite/上的MyNamespace.Web
  2. http://mysite/api上的MyNamespace.Web.Api

为了在带有 IIS Express 的 Visual Studio 中模拟这一点,我可以转到MyNamespace.Web.Api的项目属性并将项目 URL(在服务器下,在 Web 选项卡上)更改为http://localhost:12345/api/并单击“创建虚拟目录”按钮。

我的两个项目现在在 IIS Express 上运行,使用相同的端口,但在不同的虚拟目录中。


jes*_*ing 5

如果您将 Visual Studio 配置为使用 IIS,您可以在不同的 Virtual Directory 下配置这两个网站,这将允许您并排运行它们。它确实需要您正确设置路由以了解 ApplicationRoot 和 WebRoot 之间的区别,并且您在任何地方都使用 HTML Helpers 对象来设置链接中的路由。

如果愿意,您也可以在 IIS express 中配置虚拟目录,但我怀疑您需要深入研究 XML 才能使其工作

  • 仅供参考:我总是使用 IIS 进行开发。每个项目一个虚拟目录。为了调试,我连接到进程而不是按 F5。这使得测试我的应用程序变得更快,而不必每次都从主页开始,而且我也不必等待调试器连接 - 除非我选择这样做。这种行为有一个额外的好处;我学习以一种使错误跟踪成为可能的方式编写日志。这在生产中是无价的。 (2认同)