【问题标题】:using ISA to expose an internal MVC website使用 ISA 公开内部 MVC 网站
【发布时间】:2013-02-18 15:17:38
【问题描述】:

我们有一个运行 MVC3 应用程序的内部服务器,该应用程序已通过使用 ISA 服务器在我们的外部服务器上提供。

但是;它没有应用 CSS,因为对外部站点的引用未正确映射。

我可以看到,两者之间的主要区别在于 在内部它作为应用程序在内部服务器上运行 (http://InternalServer/MVCSite)

外部服务器被视为在子站点 (http://ExternalDomain/SubSite/MVCSite) 中作为应用程序运行,这就是世界所得到的。

查看生成的 URL 的来源,我可以看到它的行为类似于 内部站点,返回:@Url.Content("~/Content/Site.css") as /MVCSite/Content/Site.css

我一直在看这篇文章,看看它是否能说明问题:http://support.microsoft.com/kb/885186

我认为可能是重定向无法处理站点结构的差异?因此,修改内部站点以反映外部布局将修复任何用途。内部InternalServer/MVCSite 变为ExternalDomain/SubSite/MVCSite

我会在发现后添加更多内容。

【问题讨论】:

  • 这个问题的措辞让一些重要的事情难以理解。例如,您似乎有两个相同的站点/应用程序,其中一个是通过将端口/协议打开到第二个而使用 ISA 在外部提供的? ——这就是你的意思吗?他们都在同一台服务器上运行是否正确?如果是这样,那么 ISA 规则可能会很棘手。您可以发布适用于允许站点的 ISA 规则/过滤器吗?此外,您是否尝试过运行 Fiddler 插件以查看发生了什么 - 并且没有通过?
  • 我已经更新了这个问题,我认为它会回答你的一些问题。它们不在同一台服务器上运行。恐怕我无法发布过滤器,这可能无济于事。如果我能在了解我需要让网络人员做什么方面得到一些帮助,那将有所帮助。
  • 如果 ISA 阻止了 css 内容,那么发布这些过滤器和规则会有所帮助。仅供参考,问题仍然看起来好像两个站点都来自同一台服务器。你可以试试 Fiddler 来看看两者的区别吗?
  • 恐怕没有,CSS 就在那里,如果我直接浏览 CSS 并调整 URL 以在 url 中包含子站点,它会提供文件。问题是页面中的外部引用没有考虑到 url 的差异。

标签: asp.net-mvc-3 iis-7 instruction-set


【解决方案1】:

这个答案与 isa 无关,并且可能有一种正确的方法来配置它。但是,如果您找不到正确的解决方案,HttpRuntime.AppDomainAppVirtualPath 可能会帮助您。

不用:@Url.Content("~/Content/Site.css"),你可以试试@Url.Content(HttpRuntime.AppDomainAppVirtualPath + "Content/Site.css")

如果这不起作用,您可以使用反射覆盖 AppDomainAppVirtualPath 的值。看看这里:http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_24475811.html#a24591595

Dim vpathTypeName As String = "System.Web.VirtualPath, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Dim virtualPath As Object = ReflectionHelper.Instantiate(vpathTypeName, New Type() {GetType(String)}, New Object() {"/"})
ReflectionHelper.SetPrivateInstanceFieldValue("_appDomainAppVPath", runtime, virtualPath)

它基本上用你需要的任何值更新一个静态字段。您可以使用 HttpContext.Current.Request.Url.Host 验证主机标头并将值设置为 //SubSite/

【讨论】:

  • 感谢您的输入,我正在等待时间来调查此问题,我会将其添加到队列中。恼人的是,我发现这不仅会影响 MVC 项目,还会影响 WebResource 包含在 ASP.NET 控件中的引用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多