【发布时间】:2017-03-15 15:51:28
【问题描述】:
我有一个经典的 asp 网站和一个 MVC 网络应用程序。我将它们都作为本地主机托管在我的开发环境中。我还将它们都设置在远程服务器上。
以下是我的应用的 URL 列表:
- 本地托管的经典asp站点:http://localhost/AspAppName/
- 托管在远程服务器 (IIS) 上的经典 asp 站点:http://ServerName/AspAppName/
- 本地托管的 MVC Web 应用程序:http://localhost/MvcAppName/Dir/SubDir
- 托管在远程服务器 (IIS) 上的 MVC Web 应用程序:http://ServerName/MvcAppName/Dir/SubDir
我想要做的是让我的 MVC 应用程序在 iframe 中运行,该 iframe 放置在我的经典 asp 网站的一个页面上。
- 当我在本地运行的经典 asp 站点的 iframe 中运行本地版本的 MVC 应用程序时,一切正常。在这种情况下,我使用“http://localhost/MvcAppName/Dir/SubDir”作为在 iframe 中执行的 URL,并且 iframe 位于“http://localhost/AspAppName/SomePage.asp”
- 当我在本地运行的经典 asp 站点的 iframe 中本地运行远程版本的 MVC 应用程序时,我收到以下错误:
"此内容不能在框架中显示。
为帮助保护您输入本网站的信息的安全性,此内容的发布者不允许将其显示在框架中”
在这种情况下,我使用“http://ServerName/MvcAppName/Dir/SubDir”作为在 iframe 中执行的 URL,并且 iframe 位于“http://localhost/AspAppName/SomePage.asp”上
错误显示在 IE 中。在 Firefox 和 Chrome 中,iframe 区域保持空白。
仅出于测试目的并查看这些是否是一些跨域限制/设置.在这种情况下,我看不到任何错误,并且本地 asp 站点显示 iframe 内容和远程托管的 asp 页面,没有任何问题。
这是我本地机器上 IIS 的一些应用程序池信息:
- MvcAppName:.NET CLR 版本:v4.0,托管管道模式:集成;身份:ApplicationPoolIdentity
- AspAppName:.NET CLR 版本:v2.0;托管管道模式:经典;身份:NetworkService (!, ?)
以下是来自远程服务器上 IIS 的一些应用程序池信息:
- MvcAppName:.NET CLR 版本:v4.0,托管管道模式:集成;身份:ApplicationPoolIdentity
- AspAppName:.NET CLR 版本:v2.0;托管管道模式:经典;身份:ApplicationPoolIdentity (!, ?)
对于将远程运行的 MVC 应用程序嵌套在本地运行的 asp 站点的 iframe 中可能导致问题的任何建议,我非常感谢。
【问题讨论】:
标签: asp.net-mvc iis iframe asp-classic localhost