如何在一个子文件夹中托管ASP.NET MVC网站
我试图在托管的子文件夹中运行一个小的ASP.NET项目。 我的域名是www.gorangligorin.com,但我想在www.gorangligorin.com/testmvc上运行我的应用程序。 ASP.NET MVC在顶层没有问题,但在子文件夹中没有问题。如何在一个子文件夹中托管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配置。
你试过以下吗?
<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">*
您的IIS中的根应用程序的设置可能会影响您的子应用程序。为了防止根设置传播,请在您的根web.config中插入以下代码:
<location path="." inheritInChildApplications="false"/>
希望这会有所帮助。
我试过了,但它确实没有太大的帮助。 – SwissCoder 2012-11-05 08:01:18
如果设置正确,此功能可用...请参阅http://stackoverflow.com/a/18217352/1339704 – Soenhay 2013-08-13 19:25:33
主要有两个原因针对此问题:
如果你还没有在IIS中配置了asp.net应用程序来设置虚拟目录作为一个应用程序
-
两个或多个Web.Config存在于您的网站上。因为你在根目录下有web.config,在子目录下有第二个web.config。所以只要删除那个web.config就可以了。或返回1,并在IIS
相应解决它,因为你添加从根子目录,我要说的是,你必须改变你的路由在Global.asax文件,以处理路由
Url =“testmvc/{controller}/{action}/{id}”
您无法使testmvc成为虚拟目录吗? – 2010-01-12 13:39:10
我做了一个虚拟目录,它终于起作用了。至少第一页,子页面仍然不起作用。它看起来像MVC路由不起作用,因为它说“无法找到资源”。就像我试图访问不存在的子文件夹一样。 是否有其他设置需要更改? – gligoran 2010-01-12 18:43:00
固定。我在编写自定义路线时犯了一个愚蠢的错误,结果导致无法正常工作:) – gligoran 2010-01-12 18:51:06