|
|
|
|
|
|
Wednesday, March 23, 2005 |
|
Enabling HTTP Compression for DotNetNuke
By Scott McCulloch @ 1:06 AM :: 16306 Views ::
63 Comments :: :: DotNetNuke
|
|
The next step is to modify the web.config as follows:-
(Add inside configSections)
<sectionGroup name="blowery.web"> <section name="httpCompress" type="blowery.Web.HttpCompress.SectionHandler, blowery.Web.HttpCompress"/> </sectionGroup>
(add to the httpModules section)
<system.web> <httpModules> <add name="CompressionModule" type="blowery.Web.HttpCompress.HttpModule, blowery.web.HttpCompress"/> </ httpModules> </ system.web>
(Add inside configuration, but outside system.web)
<blowery.web> <httpCompress preferredAlgorithm="deflate" compressionLevel="high"> <excludedMimeTypes> <add type="image/jpeg"/> <add type="image/gif"/> </excludedMimeTypes> <excludedPaths></excludedPaths> </httpCompress> </blowery.web> |
|
|
|
|
| Comments |
By
Anonymous User @
Wednesday, March 23, 2005 2:44 AM
|
I heard there were the odd probs in handling/saving viewstate? I've never figured out a way to quickly measure site speed, but it will be interesting to see how you go esp as I'm at WH4L too! Nick
|
|
|
By
Anonymous User @
Wednesday, March 23, 2005 3:06 AM
|
Interestingly enough, I am also working on a PageGenerated skin object to measure how long it takes to generate a page as well. Sometimes performance goes up and down.
The compression helps with sending the page down once it has been served. I haven't heard of problems with viewstate.
|
|
|
By
W. Todd Schwingle @
Wednesday, March 23, 2005 11:35 AM
|
Scott,
Thanks for the instructions on how to install. I have installed it at one of my sites, and it appears to make the site that much snappier.
Thanks again.
Todd
|
|
|
By
Bruce Onder @
Friday, March 25, 2005 9:05 PM
|
Can anyone share actual page weight improvements, or even better, transfer rate improvements? :shades:
--Bruce
|
|
|
By
Scott McCulloch @
Sunday, March 27, 2005 8:56 PM
|
|
This page went from about 50k to 8k
|
|
|
By
Roland Kern @
Monday, March 28, 2005 1:43 AM
|
After the modification, the Web runs no more, it stops with a Application Error.
I pasted the few Lines in the Web.config (on the right position, i checked it), copied the 4 Files to the Bin directory of DNN, Result: App Error.
Any Ideas?
-Roland
|
|
|
By
Anonymous User @
Monday, March 28, 2005 1:59 AM
|
|
is it compatiable withh dnn 2.1.2 as well ?
|
|
|
By
Roland Kern @
Monday, March 28, 2005 2:11 AM
|
-> is it compatiable withh dnn 2.1.2 as well ? It should, it's a Compression App for ASP.Net 1.1
|
|
|
By
Anonymous User @
Monday, March 28, 2005 2:16 AM
|
|
Hi Roli -- did you put it ouside of the system.web area (i think you put it in the wrong place in web.config)
|
|
|
By
Anonymous User @
Monday, March 28, 2005 2:31 AM
|
|
you can send it to me via a private message (smcculloch)
|
|
|
By
Roland Kern @
Monday, March 28, 2005 2:38 AM
|
i pasted the 3 Lines <sectionGroup name="blowery.web"> etc just above </configSections>
The second Part should be outside system.web, so i pasted the code just behind </system.web> on the next line <blowery.web> etc
|
|
|
By
Roland Kern @
Monday, March 28, 2005 2:38 AM
|
|
|
By
Anonymous User @
Tuesday, March 29, 2005 5:05 PM
|
|
It's compatible with DNN 2.1.2, I use it on WWWCoder.com, and it does great with over 8000 users per day.
|
|
|
By
Anonymous User @
Wednesday, March 30, 2005 5:40 PM
|
I found it does not work if you set it up prior to first run (possibly upgrade as well) with DNN3.0.12. It probably needs to exclude the /Install directory (too buzy/lazy to check)
However, it seems to work just fine after install
|
|
|
By
Anonymous User @
Wednesday, March 30, 2005 5:41 PM
|
do we need to also add:
<system.web> <httpModules> <add name="CompressionModule" type="blowery.Web.HttpCompress.HttpModule, blowery.web.HttpCompress"/> ... </httpModules> ... </system.web>
|
|
|
By
Anonymous User @
Wednesday, March 30, 2005 5:43 PM
|
2nd try.. do we need to also add:
< system.web > < httpModules > < add name="CompressionModule" type="blowery.Web.HttpCompress.HttpModule, blowery.web.HttpCompress"/ > < / httpModules > < / system.web >
|
|
|
By
Anonymous User @
Wednesday, March 30, 2005 5:44 PM
|
|
BTW, you do not need the XML files
|
|
|
By
Rodney Joyce @
Thursday, March 31, 2005 4:43 AM
|
Nice article Scott!
Hmm - I have uploaded the .dlls into the bin, and changed the webconfig, but the load time and amount of bytes remains the same (according to http://www.websiteoptimization.com/services/analyze/ HTTP compression is NOT enabled - would this pick it up?)
So how do I tell if it is working? I installed your cool Page Generation Time skin object, but there was no change in the tests I did... I presume it will work on Webhost4Life?
|
|
|
By
Anonymous User @
Thursday, March 31, 2005 4:54 AM
|
Page Generated is the amount of time the asp.net process takes to build a response.
The compression only kicks in when serving that request to the client (the job of IIS)
|
|
|
By
Rodney Joyce @
Thursday, March 31, 2005 6:57 AM
|
I see - thanks. Should the tool http://www.websiteoptimization.com/services/analyze/ pick up the fact that comnpression is being used (it didn't when I ran it against http://www.dumbTV.com) - the size of data being sent to the client remained the same.
I remember enabling compression using IIS6 a while ago when I hosted at home and the size of data sent to the client was significantly reduced - is this the same thing? How do I tell if it is working (checked webconfig and bin and all is there)
|
|
|
By
Anonymous User @
Saturday, April 02, 2005 6:36 AM
|
|
Anyone, anyone? How do you tell if it is on because I can't see a difference?
|
|
|
By
Scott McCulloch @
Sunday, April 03, 2005 4:08 AM
|
|
I use FireFox to tell the difference, View Page Info
|
|
|
By
Rodney Joyce @
Sunday, April 03, 2005 12:59 PM
|
Wow - thats cool! My source size went from 67k to 10k, and there is a noticable increase in speed in my site (http://www.dumbTV.com)!!! I have saved the stats out of interest... Thanks Scott!
|
|
|
By
Anonymous User @
Sunday, April 03, 2005 1:08 PM
|
Trivial Note: If you copy and paste this code in step 2: <add name="CompressionModule" type="blowery.Web.HttpCompress.HttpModule, blowery.web.HttpCompress"/ >
remove the space at the end or it will fail : / > = /> Should save you 2 min ;)
|
|
|
By
Anonymous User @
Wednesday, April 06, 2005 6:44 AM
|
|
It did save me a couple of minutes thanks;)
|
|
|
By
Anonymous User @
Wednesday, April 06, 2005 12:49 PM
|
|
Are the steps described above used on DNN 2.1.2 as well?
|
|
|
By
Anonymous User @
Tuesday, May 03, 2005 2:48 PM
|
|
Thanks for the clear instructions. This is nothing short of a miracle! The decrease in page load time on some of my websites are more than 50%. Most were reduced to below 8 seconds average. Very good news that the Blowery Compression Module has been included as a Sub-Project to Dotnetnuke.
|
|
|
By
Anonymous User @
Thursday, June 16, 2005 6:58 AM
|
|
You really don't need this if your Windows 2003 with IIS 6.0
|
|
|
By
Anonymous User @
Tuesday, June 21, 2005 10:11 PM
|
|
It cut down my page size from ~30 to ~8. About 75%. Awesome!
|
|
|
By
Anonymous User @
Friday, June 24, 2005 6:09 AM
|
Quote: "You really don't need this if your Windows 2003 with IIS 6.0"
Can you explain why?
|
|
|
By
liorlustig liorlustig @
Thursday, July 07, 2005 9:47 AM
|
I just tried it on a DNN 3.1 site and after uploading the files to the bin (version 6) and updating the web.config file, all I get when entering the site is a blank page. The site name is www.BuildPortal.com. I don't use Server.Transfer as much as I know. Any help ? My mail is inetinf at yahoo dot com
|
|
|
By
Anonymous User @
Wednesday, July 20, 2005 4:09 AM
|
|
The preffered type of compression used should not be deflate but rather gzip. gzip is much better than deflate and it doesn't kill too much processor power.
|
|
|
By
Anonymous User @
Wednesday, July 20, 2005 5:21 AM
|
This is probably the best settings to use Cheers Taliesin :>~
<blowery.web> <httpCompress preferredAlgorithm="gzip" compressionLevel="high"> <excludedMimeTypes> <add type="image/png" /> <add type="image/jpeg" /> <add type="image/gif" /> <add type="application/zip" /> <add type="application/x-zip-compressed" /> <add type="application/x-gzip-compressed" /> <add type="application/x-compressed" /> <add type="application/octet-stream" /> <add type="application/pdf" /> </excludedMimeTypes> <excludedPaths> <add path="Install/" /> </excludedPaths> </httpCompress> </blowery.web>
|
|
|
By
Anonymous User @
Saturday, August 06, 2005 12:38 AM
|
Speed increase is amazing. Still, when user is logged-in as Admin or Moderator, speed increase is very low. Also, Firefox is much speeder than IE.
|
|
|
By
Cary Fleming @
Tuesday, August 23, 2005 1:52 PM
|
|
Thanks for the info Scott! I added it to my server and had over 75% page size reductions on most pages.
|
|
|
By
Russel Stieb @
Tuesday, October 11, 2005 7:02 AM
|
Scott, Does this do the same thing: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/502ef631-3695-4616-b268-cbe7cf1351ce.mspx
Just curious. Not sure if it's an option for "hosted sites", but if you're hosting your own, definitely worth a "look see"...
thanks, Russel
|
|
|
By
Scott McCulloch @
Wednesday, October 12, 2005 3:04 AM
|
|
Yep, same thing, only done in IIS
|
|
|
By
Anonymous User @
Wednesday, October 12, 2005 7:21 AM
|
|
Scott, I read on the DNN forums that you felt given the choice between IIS compression and this module, it would be best to go with IIS Compression. Is this based on your knowledge of their workings or on real world tests?
|
|
|
By
Minh Tri TRUONG @
Thursday, October 13, 2005 5:42 AM
|
Hi Scott, Thanks for the tutorial! However, I am having some problem following it, of course I have google my problem, but nobody seems to have encounter it..... I have the following error:
Security Exception Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file. Exception Details: System.Security.SecurityException: Security error.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[SecurityException: Security error.] blowery.Web.HttpCompress.DeflateFilter..ctor(Stream baseStream, CompressionLevels compressionLevel) +0 blowery.Web.HttpCompress.HttpModule.GetFilterForScheme(String[] schemes, Stream output, Settings prefs) +704 blowery.Web.HttpCompress.HttpModule.CompressContent(Object sender, EventArgs e) +479 System.Web.SyncEventExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +60 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +87
Please , helps!
Below is my web.config (based on the dnn development.config):
<configuration>
<!-- register local configuration handlers -->
<configSections>
<sectionGroup name="dotnetnuke">
<section name="data" type="DotNetNuke.Framework.Providers.ProviderConfigurationHandler, DotNetNuke" />
<section name="logging" type="DotNetNuke.Framework.Providers.ProviderConfigurationHandler, DotNetNuke" />
<section name="scheduling" type="DotNetNuke.Framework.Providers.ProviderConfigurationHandler, DotNetNuke" />
<section name="htmlEditor" type="DotNetNuke.Framework.Providers.ProviderConfigurationHandler, DotNetNuke" />
<section name="searchIndex" type="DotNetNuke.Framework.Providers.ProviderConfigurationHandler, DotNetNuke" />
<section name="searchDataStore" type="DotNetNuke.Framework.Providers.ProviderConfigurationHandler, DotNetNuke" />
<section name="friendlyUrl" type="DotNetNuke.Framework.Providers.ProviderConfigurationHandler, DotNetNuke" />
<section name="caching" type="DotNetNuke.Framework.Providers.ProviderConfigurationHandler, DotNetNuke" />
</sectionGroup>
<sectionGroup name="memberrolesprototype">
<section name="membership" type="Microsoft.ScalableHosting.Configuration.MembershipConfigHandler, MemberRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7c773fb104e7562" />
<section name="roleManager" type="Microsoft.ScalableHosting.Configuration.RolesConfigHandler, MemberRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7c773fb104e7562" />
<section name="profile" type="Microsoft.ScalableHosting.Configuration.ProfileConfigHandler, MemberRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7c773fb104e7562" />
<section name="anonymousIdentification" type="Microsoft.ScalableHosting.Configuration.AnonymousIdConfigHandler, MemberRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7c773fb104e7562" />
</sectionGroup>
<!--HTTP Compression-->
<sectionGroup name="blowery.web">
<section name="httpCompress" type="blowery.Web.HttpCompress.SectionHandler,blowery.Web.HttpCompress"/>
</sectionGroup>
</configSections>
<!-- the old connectionString setting has been deprecated and replaced with the data provider section below -->
<appSettings>
<add key="SiteSqlServer" value="Server=(local);Database=DotNetNuke;uid=XXX;pwd=XXX;" />
<add key="MachineValidationKey" value="194A850F4D694D5FE83A8382EB37E8051AB64149" />
<add key="MachineDecryptionKey" value="874287C700E55266301A0FB3C73A793DC16396F32D96CB8E" />
<add key="MachineValidationMode" value="SHA1" />
<add key="InstallTemplate" value="DotNetNuke.install.resources" />
<add key="AutoUpgrade" value="true" />
<add key="UseDnnConfig" value="false" />
<add key="InstallMemberRole" value="true" />
<!--optionally install the MemberRole scripts -->
<add key="ShowMissingKeys" value="true" />
<!-- Show missing translation keys (for development use) -->
<add key="EnableWebFarmSupport" value="false" />
<!--Set to true to enable web farm suppot. See Web Farm Support documentation for additional configuration steps.-->
<add key="EnableCachePersistence" value="false" />
<!--Some cached items can persist an app recycle by serializing the object to disk. Set to "true" to enable this performance enhancement.-->
<add key="InstallationDate" value="10/12/2005" />
</appSettings>
<system.web>
<!-- HttpModules for Common Functionality -->
<httpModules>
<!--HTTP Compression-->
<!--! <system.web>
<httpModules>-->
<add name="CompressionModule" type="blowery.Web.HttpCompress.HttpModule, blowery.web.HttpCompress"/>
<!--! </httpModules>
</system.web>-->
<add name="UrlRewrite" type="DotNetNuke.HttpModules.UrlRewriteModule, DotNetNuke.HttpModules.UrlRewrite" />
<add name="Exception" type="DotNetNuke.HttpModules.ExceptionModule, DotNetNuke.HttpModules.Exception" />
<add name="UsersOnline" type="DotNetNuke.HttpModules.UsersOnlineModule, DotNetNuke.HttpModules.UsersOnline" />
<add name="ProfilePrototype" type="Microsoft.ScalableHosting.Profile.ProfileModule, MemberRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7c773fb104e7562" />
<add name="AnonymousIdentificationPrototype" type="Microsoft.ScalableHosting.Security.AnonymousIdentificationModule, MemberRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7c773fb104e7562" />
<add name="RoleManagerPrototype" type="Microsoft.ScalableHosting.Security.RoleManagerModule, MemberRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7c773fb104e7562" />
<add name="DNNMembership" type="DotNetNuke.HttpModules.DNNMembershipModule, DotNetNuke.HttpModules.DNNMembership" />
<add name="Personalization" type="DotNetNuke.HttpModules.PersonalizationModule, DotNetNuke.HttpModules.Personalization" />
</httpModules>
<!-- This is for FTB 3.0 support -->
<httpHandlers>
<add verb="GET" path="FtbWebResource.axd" type="FreeTextBoxControls.AssemblyResourceHandler, FreeTextBox" />
</httpHandlers>
<!-- set code access security trust level - this is generally set in the machine.config
-->
<trust level="Medium" originUrl="http://localhost/.*" />
<!-- set debugmode to false for running application -->
<compilation debug="true" />
<!-- permits errors to be displayed for remote clients -->
<customErrors mode="RemoteOnly" />
<!-- Forms or Windows authentication -->
<authentication mode="Forms">
</authentication>
<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" />
<!--
<identity impersonate="true"/>
<authentication mode="Windows">
</authentication>
-->
<!-- allow large file uploads -->
<httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="8192" />
<!-- GLOBALIZATION
This section sets the globalization settings of the application.
Utf-8 is not supported on Netscape 4.x
If you need netscape compatiblity leave iso-8859-1.
UTF-8 is recommended for complex languages
-->
<globalization culture="en-US" uiCulture="en" requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="UTF-8" />
<!--<globalization culture="en-US" uiCulture="en" fileEncoding="iso-8859-1" requestEncoding="iso-8859-1" responseEncoding="iso-8859-1"/>-->
<!-- page level options -->
<pages validateRequest="false" enableViewStateMac="true" />
</system.web>
<memberrolesprototype>
<!-- membership config:
Attributes:
userIsOnlineTimeWindow="int" Time window (in minutes) to consider a User as being Online after since last activity
hashAlgorithm="[SHA1|SHA512|MD5|...]" Any valid hash algorithm supported by .NET framework, default is SHA1
Child nodes:
<providers> Providers (class must inherit from MembershipProvider)
<add Add a provider
name="string" Name to identify this provider instance by
type="string" Class that implements MembershipProvider
provider-specific-configuration />
</providers>
Configuration for SqlMembershipProvider and AccessMembershipProvider:
connectionStringName="string" Name corresponding to the entry in <connectionStrings> section where the connection string for the provider is specified
passwordAttemptThreshold="int" The number of failed password attempts, or failed password answer attempts that are allowed before locking out a user?s account
passwordAttemptWindow="int" The time window, in minutes, during which failed password attempts and failed password answer attempts are tracked
enablePasswordRetrieval="[true|false]" Should the provider support password retrievals
enablePasswordReset="[true|false]" Should the provider support password resets
requiresQuestionAndAnswer="[true|false]" Should the provider require Q & A
minRequiredPasswordLength="int" The minimum password length
minRequiredNonalphanumericCharacters="int" The minimum number of non-alphanumeric characters
applicationName="string" Optional string to identity the application: defaults to Application Metabase path
requiresUniqueEmail="[true|false]" Should the provider require a unique email to be specified
passwordFormat="[Clear|Hashed|Encrypted]" Storage format for the password: Hashed (SHA1), Clear or Encrypted (Triple-DES)
description="string" Description of what the provider does
-->
<membership userIsOnlineTimeWindow="15">
<providers>
<add name="DNNSQLMembershipProvider" type="DotNetNuke.Security.Membership.DNNSQLMembershipProvider, DNNSQLMembershipProvider" connectionStringName="SiteSqlServer" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" requiresUniqueEmail="false" passwordFormat="Encrypted" applicationName="/" description="Stores and retrieves membership data from the local Microsoft SQL Server database" />
</providers>
</membership>
<!-- Configuration for roleManager:
enabled="[true|false]" Feature is enabled?
cacheRolesInCookie="[true|false]" Cache roles in cookie?
cookieName=".ASPXROLES" Cookie Name
createPersistentCookie="[true|false]" Creates a persistent cookie or session cookie?
cookieTimeout="30" Cookie Timeout
cookiePath="/" Cookie Path
cookieRequireSSL="[true|false]" Set Secure bit in Cookie
cookieSlidingExpiration="[true|false]" Reissue expiring cookies?
cookieProtection="[None|Validation|Encryption|All]" How to protect cookies from being read/tampered
defaultProvider="string" Name of provider to use by default
domain="[domain]" Enables output of the "domain" cookie attribute set to the specified value
maxCachedResults="int" Maximum number of roles to cache in cookie
Child nodes:
<providers> Providers (class must inherit from RoleProvider)
<add Add a provider
name="string" Name to identify this provider instance by
type="string" Class that implements RoleProvider
provider-specific-configuration />
</providers>
<providers> type="TypeName" Class that inherits from System.Web.Security.RoleProvider
providerSpecificConfig Config for the provider
Configuration for SqlRoleProvider:
connectionStringName="string" Name corresponding to the entry in <connectionStrings> section where the connection string for the provider is specified
description="string" Description of what the provider does
commandTimeout="int" Command timeout value for SQL command
-->
<roleManager cacheRolesInCookie="true" cookieName=".ASPXROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" createPersistentCookie="false" cookieProtection="All">
<providers>
<add name="DNNSQLRoleProvider" type="DotNetNuke.Security.Role.DNNSQLRoleProvider, DNNSQLRoleProvider" connectionStringName="SiteSqlServer" applicationName="/" description="Stores and retrieves roles data from the local Microsoft SQL Server database" />
</providers>
</roleManager>
<!--
Configuration for profile:
<profile>
enabled="[true|false]" Feature is enabled?
automaticSaveEnabled="[true|false]" Enable automatic save of profile
inherits="type-name" Class from which the profile type inherits from. This type must inherit from ProfileBase type.
<providers> Providers (class must inherit from ProfileProvider)
<add Add a provider (only single entry supported)
name="string" Name to identify this provider instance by
type="string" Class that implements ProfileProvider
provider-specific-configuration />
<providers>
<properties> Optional element. List of properties in the Profile system
<add Add a property
name="string" Name of the property
type="string" Optional. Type of the property. Default: string.
readOnly="[true|false]" Optional. Is Value read-only. Default: false.
defaultValue="string" Optional. Default Value. Default: Empty string.
allowAnonymous="[true|false]" Optional. Allow storing values for anonymous users. Default: false.
serializeAs=["String|Xml|Binary|ProviderSpecific"] Optional. How to serialize the type. Default: ProviderSpecific.
/>
</properties>
</profile>
-->
<profile enabled="true">
<providers>
<add name="AspNetSqlProvider" type="DotNetNuke.Users.Profile.DNNSQLProfileProvider, DNNSQLProfileProvider" connectionStringName="SiteSqlServer" applicationName="/" description="Stores and retrieves profile data from the local Microsoft SQL Server database" />
</providers>
<properties>
<add name="FirstName" type="string" allowAnonymous="true" />
<add name="LastName" type="string" allowAnonymous="true" />
<add name="Unit" type="string" allowAnonymous="true" />
<add name="Street" type="string" allowAnonymous="true" />
<add name="City" type="string" allowAnonymous="true" />
<add name="Region" type="string" allowAnonymous="true" />
<add name="PostalCode" type="string" allowAnonymous="true" />
<add name="Country" type="string" allowAnonymous="true" />
<add name="Telephone" type="string" allowAnonymous="true" />
<add name="Fax" type="string" allowAnonymous="true" />
<add name="Cell" type="string" allowAnonymous="true" />
<add name="Website" type="string" allowAnonymous="true" />
<add name="IM" type="string" allowAnonymous="true" />
<add name="TimeZone" type="integer" allowAnonymous="true" />
<add name="PreferredLocale" type="string" allowAnonymous="true" />
</properties>
</profile>
<!--
anonymousIdentification configuration:
enabled="[true|false]" Feature is enabled?
cookieName=".ASPXANONYMOUS" Cookie Name
cookieTimeout="100000" Cookie Timeout in minutes
cookiePath="/" Cookie Path
cookieRequireSSL="[true|false]" Set Secure bit in Cookie
cookieSlidingExpiration="[true|false]" Reissue expiring cookies?
cookieProtection="[None|Validation|Encryption|All]" How to protect cookies from being read/tampered
domain="[domain]" Enables output of the "domain" cookie attribute set to the specified value
-->
<anonymousIdentification enabled="true" cookieName=".ASPXANONYMOUS" cookieTimeout="100000" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="None" domain="" />
</memberrolesprototype>
<dotnetnuke>
<htmlEditor defaultProvider="Ftb3HtmlEditorProvider">
<providers>
<clear />
<!--
FTB options:
============
toolbarStyle="Office2003|OfficeXP|Office2000|OfficeMac" Sets the default FTB Toolbar style
enableProFeatures="[true|false]" Pro features require a license from FreeTextBox
or you may test them with localhost only
spellCheck="[{none}|IeSpellCheck|NetSpell]" IeSpellCheck is free for non-commercial use only
NetSpell requires some integration work
-->
<add name="Ftb3HtmlEditorProvider" type="DotNetNuke.HtmlEditor.Ftb3HtmlEditorProvider, DotNetNuke.Ftb3HtmlEditorProvider" providerPath="~\Providers\HtmlEditorProviders\Ftb3HtmlEditorProvider\" toolbarStyle="Office2003" enableProFeatures="false" spellCheck="" />
</providers>
</htmlEditor>
<searchIndex defaultProvider="ModuleIndexProvider">
<providers>
<clear />
<add name="ModuleIndexProvider" type="DotNetNuke.Services.Search.ModuleIndexer, DotNetNuke.Search.Index" providerPath="~\Providers\SearchProviders\ModuleIndexer\" />
</providers>
</searchIndex>
<searchDataStore defaultProvider="SearchDataStoreProvider">
<providers>
<clear />
<add name="SearchDataStoreProvider" type="DotNetNuke.Services.Search.SearchDataStore, DotNetNuke.Search.DataStore" providerPath="~\Providers\SearchProviders\SearchDataStore\" />
</providers>
</searchDataStore>
<data defaultProvider="SqlDataProvider">
<providers>
<clear />
<add name="SqlDataProvider" type="DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider" connectionStringName="SiteSqlServer" upgradeConnectionString="" providerPath="~\Providers\DataProviders\SqlDataProvider\" objectQualifier="dnn_" databaseOwner="dbo" />
</providers>
</data>
<logging defaultProvider="DBLoggingProvider">
<providers>
<clear />
<add name="XMLLoggingProvider" type="DotNetNuke.Services.Log.EventLog.XMLLoggingProvider, DotNetNuke.XMLLoggingProvider" configfilename="LogConfig.xml.resources" providerPath="~\Providers\LoggingProviders\XMLLoggingProvider\" />
<add name="DBLoggingProvider" type="DotNetNuke.Services.Log.EventLog.DBLoggingProvider.DBLoggingProvider, DotNetNuke.Provider.DBLoggingProvider" providerPath="~\Providers\LoggingProviders\Provider.DBLoggingProvider\" />
</providers>
</logging>
<scheduling defaultProvider="DNNScheduler">
<providers>
<clear />
<add name="DNNScheduler" type="DotNetNuke.Services.Scheduling.DNNScheduling.DNNScheduler, DotNetNuke.DNNScheduler" providerPath="~\Providers\SchedulingProviders\DNNScheduler\" debug="false" maxThreads="1" />
</providers>
</scheduling>
<friendlyUrl defaultProvider="DNNFriendlyUrl">
<providers>
<clear />
<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules.UrlRewrite" includePageName="true" />
</providers>
</friendlyUrl>
<caching defaultProvider="FileBasedCachingProvider">
<providers>
<clear />
<add name="FileBasedCachingProvider" type="DotNetNuke.Services.Cache.FileBasedCachingProvider.FBCachingProvider, DotNetNuke.Caching.FileBasedCachingProvider" providerPath="~\Providers\CachingProviders\FileBasedCachingProvider\" />
<add name="BroadcastPollingCachingProvider" type="DotNetNuke.Services.Cache.BroadcastPollingCachingProvider.BPCachingProvider, DotNetNuke.Caching.BroadcastPollingCachingProvider" providerPath="~\Providers\CachingProviders\BroadcastPollingCachingProvider\" />
</providers>
</caching>
</dotnetnuke>
<!--HTTP Compression-->
<blowery.web>
<!--
Here's an example on how to change the algorithm or compression level
<compressionModule preferredAlgorithm="deflate|gzip" compressionLevel="high|normal|low"/>
so, to use deflate by default, and high compression, you would use the following line
-->
<httpCompress preferredAlgorithm="deflate" compressionLevel="high">
<excludedMimeTypes>
<add type="image/jpeg"/>
<add type="image/gif"/>
</excludedMimeTypes>
<excludedPaths>
<add path="NoCompress.aspx"/>
</excludedPaths>
</httpCompress>
</blowery.web>
</configuration>
|
|
|
By
Juan Schaffner @
Saturday, October 15, 2005 10:57 AM
|
Hi, I was wondering if Blowery HTTP Compression can work together with IIS 6 HTTP compreession?
IF not, which would you recommend to use?
TIA Juan Schaffner
|
|
|
By
Anonymous User @
Monday, October 17, 2005 11:17 AM
|
It took me a couple tries to get the web config right, but once I did this is great. 60k became 17k on one site and 50k became 12k on another. Thanks a lot!
|
|
|
By
Dave A-W @
Thursday, January 05, 2006 2:51 AM
|
Note, older versions of blowery.Web.HttpCompress.dll are not compatible with DNN4.X - they cause a conflict with the SharpZipLib used by the core File Manager page (and others)
If upgrading to DNN4, you can replace your DLL with the latest version up at http://www.blowery.org/code/HttpCompressionModule.html but be aware that it is beta.
Please comment if you try this and have any issues!
|
|
|
By
Anonymous User @
Friday, January 06, 2006 3:05 PM
|
|
How can I use Blowery's http compression module in a medium trust environment?
|
|
|
By
Anonymous User @
Tuesday, January 10, 2006 3:37 AM
|
Thanks a lot !!! Working more than GREAT :-)
IZ. www.izsurfing.com
|
|
|
By
Dave A-W @
Friday, January 13, 2006 3:52 AM
|
Further to my recent comment on DNN4.x compatibility, you will also need to add the following into your web.config blowery.web section. In "excludedPaths" add the line
<add path="WebResource.axd"/>
It seems that the compression is not compatible with .NET 2's script serving mechanism.
|
|
|
By
Anonymous User @
Saturday, January 14, 2006 8:56 PM
|
I'm on DNN4 and download v6.0 for ASP.NET 2.0. As suggested above, I excluded the WebResource.axd path. I'm running in a medium trust environement and also had to add requirePermission="false" in the sectionGroup element to get things to work.
So things work ok except:
1) File Manager crashes due to zip. I fixed this by not installing the CSharpZipLib DLLs.
2) Update module settings is broken. When I click the "Update" link I get a JavaScript error:
'WebForm_PostBackOptions' is undefined.
I'm guessing that exclusing the WebResource.axd is supposed to fix this, but it does not appear to do so in my environment. :-(
Any other suggestions?
Thanks, Bill
|
|
|
By
Anonymous User @
Wednesday, January 18, 2006 9:29 AM
|
|
Didn't fix it for me either...
|
|
|
By
Anonymous User @
Wednesday, January 18, 2006 11:25 AM
|
The fix is: <add path="ebResource.axd"/>
I had the same problem with the module update and therefore I looked in the source code and found this:
string realPath = app.Request.Path.Remove(0, app.Request.ApplicationPath.Length+1); if (settings.IsExcludedPath(realPath)) { // skip if the file path excludes compression return; }
Its seems that it removes one to many char from the path and therefore realPath ends up with "ebResource.axd"
I have kept the <add path="WebResource.axd"/> just to be sure.
|
|
|
By
Anonymous User @
Wednesday, January 18, 2006 12:22 PM
|
|
ebResource.axd works! Thanks!
|
|
|
By
Anonymous User @
Wednesday, January 18, 2006 3:45 PM
|
|
still didn't correct it for me.
|
|
|
By
Anonymous User @
Thursday, January 19, 2006 6:45 PM
|
Well here's an interesting one. Using DNN 4 with compression and occasionaly I'm getting the wrong encoding which makes for some interesting characters rendered in the browser. What I expect and want is:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD id=Head><TITLE>Electronic Drive and Controls</TITLE> <META http-equiv=Content-Type content="text/html; charset=utf-8">
What I get sometimes on the first load in IE 6.0:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD id=Head><TITLE>Electronic Drive and Controls</TITLE> <META http-equiv=Content-Type content="text/html; charset=windows-1252">
Notice the utf-8 vs. windows-1252
A realod make the windows-1252 go away, question is, why is there in the first place?
|
|
|
By
John LaFon @
Saturday, January 21, 2006 10:34 AM
|
|
When copying the files over, do I need to do it through file manager instead of FTP? It isn't working for me and I suspect that DNN hasn't registered the file since I just dumped them in via FTP.
|
|
|
By
Anonymous User @
Tuesday, January 24, 2006 5:55 AM
|
|
Some more info on the utf-8 vs. windows-1252 problem. It looks like there are several bytes of garbage at the start of the page when windows-1252 encoded. As I said before, a page reload usually results in a utf-8 encoded page with no garbage bytes at the top.
|
|
|
By
Anonymous User @
Tuesday, January 31, 2006 3:24 PM
|
I read this article very carefully but I can't get it working on websecurestores.
Is it possible that my hosting just doesn't allow this ?
I used DNN 4.0.2 and HttpCompress Version 6 for .NET 2.0 I uploaded the blowery.Web.HttpCompress.dll directly by ftp
I get the following message: The application attempted to perform an operation not allowed by the security policy.
Does anyone know what causes this error ?
(Full error: Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.
Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' failed.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[SecurityException: Request for the permission of type 'System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' failed.] System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0 System.Security.CodeAccessPermission.Demand() +59 System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(String configKey, Boolean requirePermission, Boolean isTrustedWithoutAptca) +65
|
|
|
By
Anonymous User @
Friday, February 10, 2006 8:52 PM
|
I am unable to publish my site. I get 3 errors: 'ZipInputStream' is ambiguous in the namespace 'ICSharpCode.SharpZipLib.Zip'.
'ZipEntry' is ambiguous in the namespace 'ICSharpCode.SharpZipLib.Zip'.
'ZipInputStream' is ambiguous in the namespace 'ICSharpCode.SharpZipLib.Zip'.
any ideas?
|
|
|
By
Anonymous User @
Thursday, March 09, 2006 2:05 AM
|
Hello ewery body!
When I click the "Update" link I get a JavaScript error:
'WebForm_PostBackOptions' is undefined.
ebResource.axd - didn't correct it for me. WebResource.axd - didn't correct it for me.
Any other suggestions?
|
|
|
By
Anonymous User @
Thursday, March 09, 2006 6:43 AM
|
Make sure that you clear your browser cache when including / excluding files like WebResource.axd from the compression.
Otherwise your browser might just be loading the broken WebResource.axd from the browser cache!
|
|
|
By
Curt Curt @
Monday, March 13, 2006 9:33 PM
|
Like others, my File Manager still gets an error with: <add path="WebResource.axd"/> <add path="ebResource.axd"/>
I’ve also cleared my cache.
When I delete the following from my bin folder: ICSharpCode.SharpZipLib.dll ICSharpCode.SharpZipLib.xml Then the File Manager works again.
How necessary are these two files? What do they do? Without these two files in the bin folder, is there still compression going on?
|
|
|
By
Curt Curt @
Monday, March 13, 2006 9:42 PM
|
I copied and pasted my "search engine friendly" URLs to this analyzer: http://www.websiteoptimization.com/services/analyze/index.html to test the speed and page sizes. However, it reported the same speed and sizes for all the pages I tested (Home, Calendar, Forum) with and without the compression.
What am I doing wrong?
(
|
|
|
By
Sowmitri @
Thursday, July 13, 2006 10:22 AM
|
|
Iam getiiing one error "persistent type cookie requires a module id" while adding the custom module, can anybody help regarding this, Thanx in advance!!
|
|
|
By
Bruce Parr @
Tuesday, July 25, 2006 12:08 PM
|
We had implemented HTTP compression on a customer hosted site, then we encountered something rather interesting.
We are using DNN 3.1.1, and Telerik RADCombo using LoadOnDemand. We had successfully implemented LoadOnDemand on our machines, and on several test sites. This particular customer's site, however, would not run the RADCombo in LoadOnDemand mode, and kept returning a javascript error "RadComboArrayLoadOnDemand not found" or something similar.
After spending 2 days trying to figure this out, we turned of HTTP compression and it fired right up.
If anyone can give some insight as to why this would happen and if there is any kind of workaround, we would appreciate it.
Thanks, B
|
|
|
By
dan @
Thursday, September 07, 2006 6:25 PM
|
|
|
By
Brayan Plazas @
Monday, September 17, 2007 8:52 AM
|
Hi.
I'm used to the HttpCompressionModule.
When I'm access to my site generated the following error..
An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
BC30560: 'ZipFile' spanish description
Line 138: Dim tempFile As String = Null.NullString Line 139: Dim manifestData As Byte() = Nothing Line 140: Dim packageZip As ZipFile = Nothing Line 141: Try Line 142: If HttpContext.Current Is Nothing Then
Anyone ideas
Thanks
|
|
|
Click here to post a comment
|
|
|
|