【问题标题】:ASP.NET Application getting wrong root URLASP.NET 应用程序获取错误的根 URL
【发布时间】:2017-12-09 13:17:11
【问题描述】:

这个问题应该在某个地方得到回答,但我会试着解释一下这个场景:

我有一个应用程序 ASP.NET MVC,当我在本地调试它或在根 IIS 中部署时它工作正常,但如果我将它作为应用程序部署在 IIS 上(使用别名),所有引用的文件都将指向错误的位置。

我正在使用(用于测试)我的本地计算机作为 Web 服务器。默认情况下,应用程序重定向到应用程序/登录地址。

例子:

1) 如果我将应用程序部署在 C:\inetpub\wwwroot 中,并通过 URL http://localhost 访问它,则该网站运行正常,没有文件中断或其他情况。网站将用户重定向到页面http://localhost/Login

2) 如果我在 C:\inetpub\wwwroot\app1 中部署应用程序,并通过 URL http://localhost/app1 访问它,所有引用的链接和重定向都链接到 http://localhost 而不是 http://localhost/app1,并且当默认发生重定向时,它会将我重定向到http://localhost/Login,而不是http://localhost/app1/Login

我尝试使用 Web.config 上的资源“位置”,将路径设置为“.”、“~”(使应用程序崩溃)和“/”,将 inheritInChildApplications 设置为 true/false,将其设置为System.web 节点上方的一个节点,但这些尝试都对我不起作用。

在 RouteConfig 上设置重定向到登录是没有用的,因为它只会解决登录重定向问题,而不是整个问题。考虑到 BundleConfig 以相同的方式读取。

我将 system.web 节点留在了 Web.config 节点中,如下所示:

  <location path="." inheritInChildApplications="false">
<system.web>
  <authentication mode="Forms">
    <forms loginUrl="~/Login" timeout="60" />
  </authentication>
  <roleManager enabled="true">
  </roleManager>
  <compilation debug="true" targetFramework="4.5.2" />
  <httpRuntime targetFramework="4.5.2" />
</system.web>

【问题讨论】:

  • 部署到app1文件夹时,是否还创建了一个名为app1的IIS应用程序?
  • @JohnWu 是的。我正在创建应用程序并使用相同的名称发布它。
  • 您是否尝试从 IIS 浏览应用程序?当你从 IIS 启动应用程序时,看看它的部署路径是什么
  • @AmitMishra 这是我的第一次尝试。当我点击“浏览”时,它会将我正确重定向到 localhost/app1,但是当我将我重定向到登录页面时,应用程序会根据问题中描述的情况重定向我。
  • 你试过这样做吗?

标签: c# asp.net asp.net-mvc redirect iis


【解决方案1】:

免责声明:我不知道如何从 web.config 内部执行此操作 您需要锻炼托管基址。 看到这个答案:https://stackoverflow.com/a/19866294

您可以使用 HttpRequestContext 中的 VirtualPathRoot 属性 (request.GetRequestContext().VirtualPathRoot)

这只会为您获取服务器基地址下的路径,因此要获取我使用的正在运行的 IIS 应用程序的完整 URL:

var baseUrl = string.Format("{0}{1}/", Request.RequestUri.GetLeftPart(UriPartial.Authority), RequestContext.VirtualPathRoot);

一旦你有了这个,你就可以在服务器端代码中重定向

【讨论】:

    猜你喜欢
    • 2015-04-20
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多