Does Coolite 0.8.0.30406 support .Net Framework 4 ?

  1. #1

    [SOLVED] Does Coolite 0.8.0.30406 support .Net Framework 4 ?

    Hi guys,

    I wrote a big line of business application with a lot of forms around 4 years ago using Coolite 0.8.X, since then I've been maintaining this application under the .net framework version 3.5

    A long time has passed and now I migrated this application to .Net 4.0 (it's still referencing Coolite.Ext.Web.dll 0.8.0.30406, Coolite.Utilities.dll
    1.0.0.27253 and Newtonsoft.Json.dll 3.5.0.0. In my development machine (Visual Studio 2012) the application works as expected but it's showing problems when deployed to the IIS 7 (.Net 4.0 classic application pool).

    The first page of my application is a coolite login page that's returning 404 Not Found (screenshot NotFound.png). Below is the web.config file of my app and the problematic login.aspx page:

    web.config
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <sectionGroup name="backupConfigGroup">
          <section name="backupConfig" type="Mirasoft.Configuration.BackupConfigSection" allowLocation="true" allowDefinition="Everywhere" />
        </sectionGroup>
        <section name="coolite" type="Coolite.Ext.Web.GlobalConfig" />
        <sectionGroup name="businessObjects">
          <sectionGroup name="crystalReports">
            <section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, Custom=null" />
          </sectionGroup>
        </sectionGroup>
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </configSections>
      <coolite cleanResourceUrl="true" gzip="true" scriptAdapter="Ext" scriptMode="Release" />
      <appSettings>
        <add key="CrystalImageCleaner-AutoStart" value="true" />
        <add key="CrystalImageCleaner-Sleep" value="60000" />
        <add key="CrystalImageCleaner-Age" value="120000" />
      </appSettings>
      <connectionStrings>
        <add name="XXXX" connectionString="Data Source=XXX.XXX.XXX.XXX\DEBUG;Initial Catalog=XXX;Persist Security Info=True;User ID=XXXX;Password=XXXX" providerName="System.Data.SqlClient" />
      </connectionStrings>
    
      <backupConfigGroup>
        <backupConfig folder="XXXX"
            connectionString="XXXX"
            backupSharedFolder="XXXX"
            backupFileName="XXXX"
            compressSharedFolder="XXXX"
            compressedFileName="XXXX.zip"
            encryptSharedFolder="XXXXX"
            encryptedFileName="XXXX"
            encryptionKey="XXXX" />
      </backupConfigGroup>
    
      <system.net>
        <mailSettings>
          <smtp deliveryMethod="Network" from="XXXXX@gmail.com">
            <network host="smtp.gmail.com" password="XXXX" port="587" defaultCredentials="false" userName="XXXX" />
          </smtp>
        </mailSettings>
      </system.net>
      
      <system.diagnostics>
        <sources>
          <!-- This section defines the logging configuration for My.Application.Log -->
          <source name="DefaultSource" switchName="DefaultSwitch">
            <listeners>
              <add name="FileLog" />
              <!-- Uncomment the below section to write to the Application Event Log -->
              <!--<add name="EventLog"/>-->
            </listeners>
          </source>
        </sources>
        <switches>
          <add name="DefaultSwitch" value="Information" />
        </switches>
        <sharedListeners>
          <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter" />
          <!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log -->
          <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
        </sharedListeners>
      </system.diagnostics>
      <system.web>
        <!--
                Set compilation debug="true" to insert debugging
                symbols into the compiled page. Because this
                affects performance, set this value to true only
                during development.
    
                Visual Basic options:
                Set strict="true" to disallow all data type conversions
                where data loss can occur.
                Set explicit="true" to force declaration of all variables.
            -->
        <httpRuntime executionTimeout="3600" />
        <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
          <assemblies>
            <add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304" />
            <add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304" />
            <add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304" />
            <add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
            <add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
            <add assembly="System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
            <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
          </assemblies>
          <buildProviders>
            <add extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider" />
            <add extension=".rpt" type="CrystalDecisions.Web.Compilation.RptBuildProvider, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
          </buildProviders>
        </compilation>
        <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
          <namespaces>
            <clear />
            <add namespace="System" />
            <add namespace="System.Collections" />
            <add namespace="System.Collections.Generic" />
            <add namespace="System.Collections.Specialized" />
            <add namespace="System.Configuration" />
            <add namespace="System.Text" />
            <add namespace="System.Text.RegularExpressions" />
            <add namespace="System.Linq" />
            <add namespace="System.Xml.Linq" />
            <add namespace="System.Web" />
            <add namespace="System.Web.Caching" />
            <add namespace="System.Web.SessionState" />
            <add namespace="System.Web.Security" />
            <add namespace="System.Web.Profile" />
            <add namespace="System.Web.UI" />
            <add namespace="System.Web.UI.WebControls" />
            <add namespace="System.Web.UI.WebControls.WebParts" />
            <add namespace="System.Web.UI.HtmlControls" />
          </namespaces>
        </pages>
        <!--
                The <authentication> section enables configuration
                of the security authentication mode used by
                ASP.NET to identify an incoming user.
          
        <authentication mode="Windows"/>
      
                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" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
            -->
        <authentication mode="Forms">
          <forms cookieless="AutoDetect" loginUrl="~/login.aspx" name="SEGURANCAFORMAUTH" timeout="30" />
        </authentication>
        <membership defaultProvider="MiraMembershipProvider" userIsOnlineTimeWindow="60">
          <providers>
            <add applicationName="/XXXX" connectionStringName="XXXX" enablePasswordReset="false" enablePasswordRetrieval="true" maxInvalidPasswordAttempts="3" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="0" name="MiraMembershipProvider" passwordAttemptWindow="0" passwordFormat="Clear" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" type="LibAuditorOnline.Mirasoft.Membership.MiraMembershipProvider" />
          </providers>
        </membership>
        <!--
                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" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
            -->
        <httpHandlers>
          <add path="*/coolite.axd" verb="*" type="Coolite.Ext.Web.ResourceManager" validate="false" />
          <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
        </httpHandlers>
        <httpModules>
          <add name="AjaxRequestModule" type="Coolite.Ext.Web.AjaxRequestModule, Coolite.Ext.Web" />
          <add name="SampleSqlInjectionScreeningModuleVB" type="Sample.SampleSqlInjectionScreeningModuleVB" />
        </httpModules>
      </system.web>
      <location path="restricted">
        <system.web>
          <authorization>
            <deny users="?" />
            <allow users="*" />
          </authorization>
        </system.web>
      </location>
      <!--
            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" />
        <handlers>
          <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode" />
        </handlers>
      </system.webServer>
      <businessObjects>
        <crystalReports>
          <rptBuildProvider>
            <add embedRptInResource="true" />
          </rptBuildProvider>
        </crystalReports>
      </businessObjects>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
      </entityFramework>
    </configuration>
    login.aspx
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="login.aspx.vb" Inherits="login" %>
    
    <%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>
    <%@ Register Assembly="SegurancaControls" Namespace="ASP" TagPrefix="login" %>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>Login :: Mirasoft WebDAE</title>
    
        <script type="text/javascript">
    
            function finaliza() {
    
                var doc = parent.document;
                if (doc != null) {
                    if (doc.title != '' && doc.title.indexOf('Login') == -1) {
                        //alert(doc.title);
                        parent.window.location = "login.aspx"; //retorna a tela de login.
                    }
                }
    
            }
    
            function ValidaUsuario(nomeUsuario, senha) {
    
                if (nomeUsuario == '') {
                    Ext.Msg.alert('Atenção', 'Verifique o nome do usuário!', function() { Ext.getCmp('txtNomeUsuario').focus(); });
                    return;
                }
    
                if (senha == '') {
                    Ext.Msg.alert('Atenção', 'Verifique a senha do usuário!', function() { Ext.getCmp('txtSenha').focus(); });
                    return;
                }
    
                /* Solicita a validação do usuário de acordo com o primeiro MembershipProvider
                * encontrado no arquivo de configuração, este MembershipProvider por sua vez
                * apontará para uma ConnectionString caso a validação esteja sendo realizada
                * em um banco de dados.
                */
                Coolite.AjaxMethods.ValidateUser(nomeUsuario, senha,
                {
                    success: function(result) {
    
                        if (!result) {
                            Ext.Msg.alert('Atenção', 'Verifique o nome do usuário e senha!', function() { Ext.getCmp('txtNomeUsuario').focus(); });
                        }
                    }
    
                    , failure: function(result) {
                        Ext.Msg.alert('Atenção', 'Problemas na validação do usuário!');
    
                    }
                });
            }
    
        
        </script>
    
    </head>
    <body onload="finaliza();" background="images/plano_login.png">
        <ext:ScriptManager AjaxViewStateMode="Exclude" EnableViewState="false" ID="ScriptManager1"
            runat="server" ScriptMode="Release" />
        <ext:Window ID="Window1" runat="server" Title="Senha do usuário" Width="370" Height="230"
            MinWidth="370" MinHeight="230" Closable="false" Resizable="false">
            <TopBar>
                <ext:Toolbar ID="Toolbar1" runat="server">
                    <Items>
                        <ext:ToolbarButton ID="btnAdd" runat="server" Icon="Key" Text="Acessar">
                            <Listeners>
                                <Click Handler="ValidaUsuario(#{txtNomeUsuario}.getValue(), #{txtSenha}.getValue());" />
                            </Listeners>
                        </ext:ToolbarButton>
                    </Items>
                </ext:Toolbar>
            </TopBar>
            <Body>
                <ext:AbsoluteLayout ID="AbsoluteLayout1" runat="server">
                    <ext:Label ID="Label1" runat="server" X="10" Y="15" Text="Usuário">
                    </ext:Label>
                    <ext:TextField ID="txtNomeUsuario" runat="server" X="10" Y="35" Width="330" StyleSpec="textTransform:uppercase;"
                        AllowBlank="false">
                    </ext:TextField>
                    <ext:Label ID="Label2" runat="server" X="10" Y="65" Text="Senha">
                    </ext:Label>
                    <ext:TextField ID="txtSenha" runat="server" X="10" Y="85" Width="330" InputType="Password"
                        AllowBlank="false">
                    </ext:TextField>
                </ext:AbsoluteLayout>
            </Body>
        </ext:Window>
        <%-- Enter Invoca a Function Valida Usuário --%>
        <ext:KeyMap ID="KeyMap1" runat="server" Target="={Ext.isGecko ? Ext.getDoc() : Ext.getBody()}">
            <ext:KeyBinding>
                <Keys>
                    <ext:Key Code="Enter" />
                </Keys>
                <Listeners>
                    <Event Handler="ValidaUsuario(#{txtNomeUsuario}.getValue(), #{txtSenha}.getValue());" />
                </Listeners>
            </ext:KeyBinding>
        </ext:KeyMap>
    </body>
    </html>
    When I switch this application to a .Net 3.5 application pool the applications works as expected.

    Thanks for any help!
    Marcos Hass Wakamatsu
    Attached Thumbnails Click image for larger version. 

Name:	NotFound.png 
Views:	99 
Size:	38.6 KB 
ID:	24285  
    Last edited by marcossoft; Oct 19, 2015 at 5:42 PM.
  2. #2
    Hi @marcossoft,

    It is been a long time since the last question regarding Coolite 0.8.x:) it is nice to hear there are still Coolite 0.8.x applications in use.

    I don't think I've ever tested Coolite 0.8.x with .NET 4, but I tend to think that it should work well.

    Besides migrating to .NET 4, you are probably migrating from IIS 6 or earlier to IIS 7, aren't you?

    Most likely, you should define the Coolite module and handler in the <system.webServer> section similarly as it is done in this sample Web.config for the latest Ext.NET:
    https://examples3.ext.net/#/Getting_...ple_Web.config
  3. #3
    Hi Daniil, first of all thanks for your answer!

    I did what you suggested and my application is working like a charm. The version of the OS is Windows Server 2008 Enterprise SP2 (x86), IIS Version 7.0.6000.16386

    Below the steps that I performed:


    • I've put the following line in my web.config file like your recommendation:


    <system.webServer>
        <modules>
          <add name="AjaxRequestModule" type="Coolite.Ext.Web.AjaxRequestModule, Coolite.Ext.Web"/>
        </modules>
        
        <handlers>
          <add name="DirectRequestHandler" verb="*" path="*/coolite.axd" preCondition="integratedMode" type="Coolite.Ext.Web.ResourceManager" />
          <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode" />
        </handlers>
        <validation validateIntegratedModeConfiguration="false" />
    
        <defaultDocument>
            <files>
                <add value="login.aspx" />
            </files>
        </defaultDocument>
      </system.webServer>

    • At the server level in the IIS console I changed the "ISAPI and CGI Restrictions" and allowed the .Net 4 pools (screenshot attached)
    • The application was assigned to the ASP.NET v4.0 (.NET Framework v4.0.30319) Pool in "Integrated" mode
    • I've put the ASP.NET v4.0 pool to run as an admin account, this is a requirement of my application maybe not suitable for everyone (screenshot attached)


    Below the final version of the web.config file:
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <sectionGroup name="backupConfigGroup">
          <section name="backupConfig" type="Mirasoft.Configuration.BackupConfigSection" allowLocation="true" allowDefinition="Everywhere" />
        </sectionGroup>
        <section name="coolite" type="Coolite.Ext.Web.GlobalConfig" />
        <sectionGroup name="businessObjects">
          <sectionGroup name="crystalReports">
            <section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, Custom=null" />
          </sectionGroup>
        </sectionGroup>
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </configSections>
      <coolite cleanResourceUrl="true" gzip="true" scriptAdapter="Ext" scriptMode="Release" />
      <appSettings>
        <add key="CrystalImageCleaner-AutoStart" value="true" />
        <add key="CrystalImageCleaner-Sleep" value="60000" />
        <add key="CrystalImageCleaner-Age" value="120000" />
      </appSettings>
      <connectionStrings>
        <add name="XXXX" connectionString="Data Source=XXX.XXX.XXX.XXX\DEBUG;Initial Catalog=XXX;Persist Security Info=True;User ID=XXXX;Password=XXXX" providerName="System.Data.SqlClient" />
      </connectionStrings>
    
      <backupConfigGroup>
        <backupConfig folder="XXXX"
            connectionString="XXXX"
            backupSharedFolder="XXXX"
            backupFileName="XXXX"
            compressSharedFolder="XXXX"
            compressedFileName="XXXX.zip"
            encryptSharedFolder="XXXXX"
            encryptedFileName="XXXX"
            encryptionKey="XXXX" />
      </backupConfigGroup>
    
      <system.net>
        <mailSettings>
          <smtp deliveryMethod="Network" from="XXXXX@gmail.com">
            <network host="smtp.gmail.com" password="XXXX" port="587" defaultCredentials="false" userName="XXXX" />
          </smtp>
        </mailSettings>
      </system.net>
      
      <system.diagnostics>
        <sources>
          <!-- This section defines the logging configuration for My.Application.Log -->
          <source name="DefaultSource" switchName="DefaultSwitch">
            <listeners>
              <add name="FileLog" />
              <!-- Uncomment the below section to write to the Application Event Log -->
              <!--<add name="EventLog"/>-->
            </listeners>
          </source>
        </sources>
        <switches>
          <add name="DefaultSwitch" value="Information" />
        </switches>
        <sharedListeners>
          <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter" />
          <!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log -->
          <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
        </sharedListeners>
      </system.diagnostics>
      <system.web>
        <!--
                Set compilation debug="true" to insert debugging
                symbols into the compiled page. Because this
                affects performance, set this value to true only
                during development.
    
                Visual Basic options:
                Set strict="true" to disallow all data type conversions
                where data loss can occur.
                Set explicit="true" to force declaration of all variables.
            -->
        <httpRuntime executionTimeout="3600" />
        <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
          <assemblies>
            <add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304" />
            <add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304" />
            <add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304" />
            <add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
            <add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
            <add assembly="System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
            <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
          </assemblies>
          <buildProviders>
            <add extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider" />
            <add extension=".rpt" type="CrystalDecisions.Web.Compilation.RptBuildProvider, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
          </buildProviders>
        </compilation>
        <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
          <namespaces>
            <clear />
            <add namespace="System" />
            <add namespace="System.Collections" />
            <add namespace="System.Collections.Generic" />
            <add namespace="System.Collections.Specialized" />
            <add namespace="System.Configuration" />
            <add namespace="System.Text" />
            <add namespace="System.Text.RegularExpressions" />
            <add namespace="System.Linq" />
            <add namespace="System.Xml.Linq" />
            <add namespace="System.Web" />
            <add namespace="System.Web.Caching" />
            <add namespace="System.Web.SessionState" />
            <add namespace="System.Web.Security" />
            <add namespace="System.Web.Profile" />
            <add namespace="System.Web.UI" />
            <add namespace="System.Web.UI.WebControls" />
            <add namespace="System.Web.UI.WebControls.WebParts" />
            <add namespace="System.Web.UI.HtmlControls" />
          </namespaces>
        </pages>
        <!--
                The <authentication> section enables configuration
                of the security authentication mode used by
                ASP.NET to identify an incoming user.
          
        <authentication mode="Windows"/>
      
                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" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
            -->
        <authentication mode="Forms">
          <forms cookieless="AutoDetect" loginUrl="~/login.aspx" name="SEGURANCAFORMAUTH" timeout="30" />
        </authentication>
        <membership defaultProvider="MiraMembershipProvider" userIsOnlineTimeWindow="60">
          <providers>
            <add applicationName="/XXXX" connectionStringName="XXXX" enablePasswordReset="false" enablePasswordRetrieval="true" maxInvalidPasswordAttempts="3" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="0" name="MiraMembershipProvider" passwordAttemptWindow="0" passwordFormat="Clear" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" type="LibAuditorOnline.Mirasoft.Membership.MiraMembershipProvider" />
          </providers>
        </membership>
        <!--
                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" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
            -->
        <httpHandlers>
          <add path="*/coolite.axd" verb="*" type="Coolite.Ext.Web.ResourceManager" validate="false" />
          <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
        </httpHandlers>
        <httpModules>
          <add name="AjaxRequestModule" type="Coolite.Ext.Web.AjaxRequestModule, Coolite.Ext.Web" />
          <add name="SampleSqlInjectionScreeningModuleVB" type="Sample.SampleSqlInjectionScreeningModuleVB" />
        </httpModules>
      </system.web>
      <location path="restricted">
        <system.web>
          <authorization>
            <deny users="?" />
            <allow users="*" />
          </authorization>
        </system.web>
      </location>
      <!--
            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>
        <modules>
          <add name="AjaxRequestModule" type="Coolite.Ext.Web.AjaxRequestModule, Coolite.Ext.Web"/>
        </modules>
        
        <handlers>
          <add name="DirectRequestHandler" verb="*" path="*/coolite.axd" preCondition="integratedMode" type="Coolite.Ext.Web.ResourceManager" />
          <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode" />
        </handlers>
        <validation validateIntegratedModeConfiguration="false" />
    
        <defaultDocument>
            <files>
                <add value="login.aspx" />
            </files>
        </defaultDocument>
      </system.webServer>
    
      <businessObjects>
        <crystalReports>
          <rptBuildProvider>
            <add embedRptInResource="true" />
          </rptBuildProvider>
        </crystalReports>
      </businessObjects>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
      </entityFramework>
    </configuration>
    Thanks again!
    Marcos Hass Wakamatsu
    Attached Thumbnails Click image for larger version. 

Name:	ISAPI_and_CGI_Restrictions.png 
Views:	102 
Size:	37.8 KB 
ID:	24286   Click image for larger version. 

Name:	ApplicationPool_As_Admin.png 
Views:	34 
Size:	88.1 KB 
ID:	24287  
  4. #4
    Great to hear! Thank you for sharing all the details!

Similar Threads

  1. Replies: 0
    Last Post: Dec 01, 2011, 6:34 AM
  2. [CLOSED] Coolite Support for IE 9
    By speedstepmem3 in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Mar 24, 2011, 10:56 AM
  3. Replies: 5
    Last Post: Mar 23, 2010, 5:17 AM
  4. Coolite using Entity Framework
    By Zarzand in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Dec 30, 2008, 9:42 PM
  5. Coolite 0.7.0 Framework 3.5?
    By egodoy in forum Open Discussions
    Replies: 2
    Last Post: Dec 22, 2008, 4:30 PM

Tags for this Thread

Posting Permissions