【问题标题】:How to host ASP.NET MVC site in a subfolder如何在子文件夹中托管 ASP.NET MVC 站点
【发布时间】:2011-01-04 04:33:13
【问题描述】:

我正在尝试在主机的子文件夹中运行一个小的 ASP.NET 项目。 我的域名是 www.gorangligorin.com,但我想在 www.gorangligorin.com/testmvc 中运行我的应用程序。 ASP.NET MVC 在顶层运行没有问题,但在子文件夹中没有问题。

服务器这样说(第 58 行是红色的):

Line 56:             ASP.NET to identify an incoming user. 
Line 57:     -->
Line 58:     <authentication mode="Forms">
Line 59:       <forms loginUrl="~/Account/LogOn" timeout="2880" />
Line 60:     </authentication>

我可以做些什么来使这个 ASP.NET MVC 网站正常工作?这不是托管在我的计算机上,因此我无权访问 IIS 配置。

【问题讨论】:

  • 不能让 testmvc 成为虚拟目录?
  • 我创建了一个虚拟目录,它终于可以工作了。至少第一页,子页面仍然不起作用。看起来 MVC 路由不起作用,因为它说“找不到资源”。就像我试图访问一个不存在的子文件夹一样。我还需要更改其他设置吗?
  • 已修复。我在编写自定义路线时犯了一个愚蠢的错字,导致无法正常工作:)

标签: asp.net asp.net-mvc


【解决方案1】:

您的 IIS 中根应用程序的设置可能会影响您的子应用程序。为了防止根设置传播,请在您的根 web.config 中插入以下代码:

<location path="." inheritInChildApplications="false"/>

希望这会有所帮助。

【讨论】:

【解决方案2】:

您是否在 IIS 中为此目录创建了 ASP.NET 应用程序?否则 ASP.NET 认为服务器的根是应用程序的根,而不是子目录中的根。

【讨论】:

  • 在某种程度上,这就是解决方案。当我创建一个虚拟目录时,有一个复选框,如果我想在其中创建一个 asp.net 应用程序。
【解决方案3】:

您是否尝试过以下操作?

<forms loginUrl="~/testmvc/Account/LogOn" timeout="2880" />

波浪号 (~) 是 HttpRuntime.AppDomainAppVirtualPath 属性的快捷方式,它指的是虚拟应用程序根目录,而不是 Web 服务器的根目录。

HttpRuntime.AppDomainAppVirtualPath

http://msdn.microsoft.com/en-us/library/system.web.httpruntime.appdomainappvirtualpath.aspx

另外,星号是怎么回事?

Line 58:     <authentication mode="Forms">*

【讨论】:

  • 这没有任何帮助。我试过有无~,有无/testmvc在/account/logon前面,我试过account/logon和testmvc/account/logon(没有/infront)。
  • 不知道星号是怎么来的,但它不在 Web.Config 或错误页面上。我编辑了原始帖子。
【解决方案4】:

这个问题主要有两个原因:

  1. 如果您尚未在 IIS 中配置您的 asp.net 应用程序以将该虚拟目录设置为应用程序

  2. 您的站点上存在两个或多个 Web.Config。因为您在根级别有 web.config,而在子目录中有第二个 web.config。因此,如果它相同,只需删除该 web.config 即可。或者回到 1 并在 IIS 中相应地解决它

    由于您从根目录添加了一个子目录,我想说您必须在 global.asax 文件中更改您的路由,以处理路由

Url = "testmvc/{controller}/{action}/{id}"

【讨论】:

    猜你喜欢
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多