2011-07-09 12 views
6

Estoy tratando de incluir una página de formularios web (.aspx) dentro de una aplicación de Orchard 1.2.Página de WebForms dentro de la aplicación CMS de Orchard

He intentado la adición de nuevo el controlador de aspx en el web.config

<add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" /> 

y el código añadido a la Global.asax para tratar de conseguir el encaminamiento de ignorar aspx pide

routes.IgnoreRoute("{resource}.aspx/{*pathInfo}"); 

I Aún recibo una respuesta 404 cada vez que solicito la página aspx. ¿Cómo hago que esto funcione?

Respuesta

7

Aquí está un web.config que ha trabajado para mí:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <handlers accessPolicy="Script"> 
     <add name="ASPX" path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode" requireAccess="Script"/> 
     </handlers> 
    </system.webServer> 
</configuration> 
+0

Gracias Bertrand. Lo conseguí trabajando agregando el controlador en el archivo web.config de Orchard.Web y colocando mis páginas webform en un directorio en el mismo proyecto. – joshb

0

Utilizando el anterior como el Web.cofig completa de Orchard.web produce el resultado, pero deja que se muestran las páginas de la huerta.

Añadiendo este manejador al Web.config original de Orchard.Web todavía produce un error de Recurso no encontrado al navegar a páginas ASPX (las páginas de huerto están bien).

Al eliminar

<httpHandlers> 
     <!-- see below --> 
     <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/> 
</httpHandlers> 

puedo navegar a ambas páginas Orchard Páginas y ASPX utilizando el método anterior.

Gracias

Web.config completa de Orchard.Web

<?xml version="1.0"?> 
<!-- 
    Note: As an alternative to hand editing this file you can use the 
    web admin tool to configure settings for your application. Use 
    the Website->Asp.Net Configuration option in Visual Studio. 
    A full list of settings and comments can be found in 
    machine.config.comments usually located in 
    \Windows\Microsoft.Net\Framework\v2.x\Config 
--> 
<configuration> 
    <configSections> 
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor"> 
     <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor" requirePermission="false" /> 
     <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor" requirePermission="false" /> 
    </sectionGroup> 

    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false" /> 
    </configSections> 

    <appSettings> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="log4net.Config" value="Config\log4net.config" /> 
    </appSettings> 

    <system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
    <pages pageBaseType="Orchard.Mvc.ViewEngines.Razor.WebViewPage"> 
     <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Linq"/> 
     <add namespace="System.Collections.Generic"/> 
     <add namespace="Orchard.Mvc.Html"/> 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor> 

    <!-- 
     Set default transaction timeout to 30 minutes so that interactive debugging 
     is easier (default timeout is less than one minute) 
    --> 
    <system.transactions> 
    <defaultSettings timeout="00:30:00"/> 
    </system.transactions> 
    <system.web> 
    <!--<trust level="Medium" originUrl="" />--> 

    <httpRuntime requestValidationMode="2.0" /> 
    <!-- 
      Set compilation debug="true" to insert debugging 
      symbols into the compiled page. Because this 
      affects performance, set this value to true only 
      during development. 
    --> 
    <compilation debug="true" targetFramework="4.0" batch="true" numRecompilesBeforeAppRestart="250"> 
     <buildProviders> 
     <add extension=".csproj" type="Orchard.Environment.Extensions.Compilers.CSharpExtensionBuildProviderShim"/> 
     </buildProviders> 
     <assemblies> 
     <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/> 
     <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/> 
     <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/> 
     <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <remove assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     <remove assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     <remove assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <remove assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     <remove assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <remove assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     <remove assembly="System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     <remove assembly="System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <remove assembly="System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <remove assembly="System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <remove assembly="System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <remove assembly="System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <remove assembly="System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <remove assembly="System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <remove assembly="System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <remove assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
     <remove assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <remove assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
     </assemblies> 
    </compilation> 
    <!-- 
      The <authentication> section enables configuration 
      of the security authentication mode used by 
      ASP.NET to identify an incoming user. 
    --> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Users/Account/AccessDenied" timeout="2880"/> 
    </authentication> 

    <!-- 
      The <customErrors> section enables configuration 
      of what to do if/when an unhandled error occurs 
      during the execution of a request. Specifically, 
      it enables developers to configure html error pages 
      to be displayed in place of a error stack trace. 
    --> 
    <customErrors mode="RemoteOnly" /> 
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"> 
     <namespaces> 
     <add namespace="System.Web.Mvc"/> 
     <add namespace="System.Web.Mvc.Ajax"/> 
     <add namespace="System.Web.Mvc.Html"/> 
     <add namespace="System.Web.Routing"/> 
     <add namespace="System.Linq"/> 
     <add namespace="System.Collections.Generic"/> 
     <add namespace="Orchard.Mvc.Html"/> 
     </namespaces> 
    </pages> 


    <httpModules> 
     <add name="WarmupHttpModule" type="Orchard.WarmupStarter.WarmupHttpModule, Orchard.WarmupStarter, Version=1.0.20, Culture=neutral"/> 
    </httpModules> 
    </system.web> 
    <!-- 
     The system.webServer section is required for running ASP.NET AJAX under Internet 
     Information Services 7.0. It is not necessary for previous version of IIS. 
    --> 
    <system.webServer> 

    <validation validateIntegratedModeConfiguration="false" /> 
    <modules runAllManagedModulesForAllRequests="true"> 
     <remove name="WarmupHttpModule" /> 
     <add name="WarmupHttpModule" type="Orchard.WarmupStarter.WarmupHttpModule, Orchard.WarmupStarter, Version=1.0.20, Culture=neutral"/> 
    </modules> 
    <handlers accessPolicy="Script"> 
     <add name="ASPX" path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode" requireAccess="Script"/> 
     <add name="NotFound" path="*" verb="*" type="System.Web.HttpNotFoundHandler" preCondition="integratedMode" requireAccess="Script"/> 
    </handlers> 
    </system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <probing privatePath="App_Data/Dependencies"/> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="3.0.0.0"/> 
     <bindingRedirect oldVersion="2.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 
Cuestiones relacionadas