如何在子文件夹中托管ASP.NET MVC站点

时间:2010-01-12 13:37:27

标签: asp.net asp.net-mvc

我正在尝试在托管的子文件夹中运行一个小的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配置。

4 个答案:

答案 0 :(得分:5)

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

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

希望这有帮助。

答案 1 :(得分:3)

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

答案 2 :(得分:1)

您是否尝试过以下操作?

<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">*

答案 3 :(得分:1)

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

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

  2. 您网站上存在两个或多个Web.Config。由于您在根级别具有web.config,在子目录中具有第二个web.config。所以只要删除web.config,如果它是相同的。或者回到1并在IIS中相应地解决它

    既然您从root添加了一个子目录,我会说您必须在global.asax文件中更改路由,以处理路由

  3. Url =“testmvc / {controller} / {action} / {id}”