【问题标题】:Run multiple web applications in one Visual Studio development server?在一台 Visual Studio 开发服务器中运行多个 Web 应用程序?
【发布时间】:2013-02-18 02:01:16
【问题描述】:

我有 2 个 ASP.Net MVC Web 应用程序,ParentSite 和 ChidSite。 ParentSite 有一个页面,该页面将打开一个弹出窗口,该窗口将导航到子站点,当子页面完成时,它会通知父页面。但是我收到了一个跨域错误,因为

Parent is = http://localhost:49000/Home
Child is = http://localhost:50000/Home

在 Visual Studio 中有没有一种方法可以让我在 Visual Studio 开发服务器(不在本地 IIS 服务器上)的一个端口下同时运行 Web 应用程序。

如果我们在项目中使用相同的端口,Visual Studio 会自动选择一个动态端口,如果它已经运行了 DEV 服务器。

感谢您的帮助。

【问题讨论】:

  • “一个端口下的 web 应用程序” - 不,不是自动的。 (例如,/Home 会去哪里?)我想你可以使用路由将控制器从一个包含到另一个。
  • 为什么要在一个端口上运行 2 个应用程序?在这种情况下,在一个应用程序中创建不同的路由。使用路由引擎为它们提供不同的路径和控制器。
  • 为什么 1 个端口中有 2 个应用程序?在组织级别,多个站点在 IIS 上作为 VD 托管...因此在生产中永远不会存在跨域问题...
  • 有 2 个独立的项目由不同的团队完成 ...http://company.com/projectAhttp://company.com/projectB // 所以在本地它们是 2 个独立的项目 ...所以浏览器提供跨域 .. . 并阻止开发团队进行有效测试

标签: c# asp.net-mvc visual-studio-2010


【解决方案1】:

不,您不能在同一个端口/应用程序空间下托管两个应用程序。想想 web.config、路由(如 cmets 中提到的)、安全性等。这些都是该空间的一部分。

可以尝试解决跨域错误,但这并不简单,也不是跨浏览器友好的(目前)。我希望情况有所改变。

你有几个选择:

  • 使用 WebAPI 在 ChildSite 上公开您需要的位,并从控制器的 ParentSite 使用它。您可以通过简单的 HTTP 获取来做到这一点,并将 JSON 返回到弹出窗口(现在将存在于 ParentSite 上)。客户不再访问第 3 方网站。
  • 使用区域或便携式区域将子项目合并到 ParentSite 中

要添加区域,只需在解决方案资源管理器中右键单击您的 MVC 项目,然后选择添加 -> 区域。

干杯。

【讨论】:

  • 为什么 1 个端口中有 2 个应用程序?在组织级别,多个站点在 IIS 上作为 VD 托管...因此在生产中永远不会存在跨域问题有 2 个由不同团队完成的单独项目...http://company.com/projectAhttp://company.com/projectB //所以在本地他们是 2 个独立的项目......所以浏览器提供跨域......并阻止开发团队进行有效测试
  • 这是对问题有益的附加细节,但如果您不使用 VD,同样的挑战仍然存在。区域仍然是一个选项。
猜你喜欢
  • 2011-05-10
  • 1970-01-01
  • 2020-08-25
  • 2021-03-02
  • 2019-01-26
  • 2010-10-01
  • 1970-01-01
  • 2010-09-20
  • 2013-05-19
相关资源
最近更新 更多