2010-01-12 25 views
8

Estoy tratando de ejecutar un pequeño proyecto ASP.NET en una subcarpeta de mi hosting. Mi dominio es www.gorangligorin.com, pero quiero ejecutar mi aplicación en www.gorangligorin.com/testmvc. ASP.NET MVC se ejecuta sin problemas en el nivel superior, pero no en subcarpetas.Cómo alojar el sitio ASP.NET MVC en una subcarpeta

El servidor dice esto (línea 58 es de color rojo):

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> 

¿Qué puedo hacer para que esto funcione página web ASP.NET MVC? Esto no está alojado en mi computadora, por lo que no tengo acceso a las configuraciones de IIS.

+1

No se puede hacer que testmvc sea un directorio virtual? –

+0

Hice un directorio virtual y finalmente funciona. Al menos en la primera página, las páginas secundarias aún no funcionan. Parece que MVC Routing no funciona porque dice "El recurso no se puede encontrar". Como si estuviera intentando acceder a una subcarpeta que no existe. ¿Hay alguna otra configuración que deba cambiar? – gligoran

+0

Reparado. Hice un error estúpido al escribir rutas personalizadas y resultó en que no funciona :) – gligoran

Respuesta

3

¿Creó una aplicación ASP.NET en IIS para este directorio? De lo contrario, ASP.NET piensa que la raíz de su servidor es la raíz de su aplicación, no la que está en el subdirectorio.

+0

¿Cómo hago esto? – gligoran

+0

Necesita acceso a IIS. –

+0

En cierto modo, esta fue la solución. Cuando creé un directorio virtual, había una casilla de verificación si quería crear una aplicación asp.net en él. – gligoran

1

¿Has probado lo siguiente?

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

La tilde (~) es un acceso directo para la propiedad HttpRuntime.AppDomainAppVirtualPath, que se refiere a la raíz de la aplicación virtual, no la raíz del servidor web.

HttpRuntime.AppDomainAppVirtualPath 

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

Además, ¿cuál es el asterisco?

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

Esto no ayuda de ninguna manera. He intentado con y sin ~, con o sin/testmvc delante de/account/logon, he intentado con account/logon y testmvc/account/logon (sin/infront). – gligoran

+0

No sé realmente cómo se creó el asterisco, pero no está en Web.Config o en la página de error. Edité la publicación original. – gligoran

5

Los ajustes de la aplicación de la raíz en su IIS puede afectar a sus aplicaciones infantiles. Con el fin de evitar que la configuración de la raíz de la propagación, inserte el siguiente código en su raíz web.config:

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

Espero que esto ayude.

+0

Lo intenté, pero realmente no ayudó mucho. – SwissCoder

+0

Esto funciona si está configurado correctamente ... ver http://stackoverflow.com/a/18217352/1339704 – Soenhay

1

Existen principalmente dos razones para este problema:

  1. Si no ha configurado la aplicación asp.net en IIS como en establecer que el directorio virtual como una aplicación

  2. dos o muchos Web.Config existe en su sitio. Dado que tiene el web.config en el nivel raíz y el segundo web.config en el subdirectorio. Así que simplemente elimine ese web.config si es el mismo. o Volver a las 1 y resolver en consecuencia en el IIS

    Y puesto que ha agregado un subdirectorio de la raíz, diría que usted tiene que cambiar sus rutas en el archivo Global.asax, para manejar el enrutamiento

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

Cuestiones relacionadas