Able with BlogEngine

For general questions and discussions specific to the AbleCommerce 7.0 Asp.Net product.
Post Reply
diablom
Ensign (ENS)
Ensign (ENS)
Posts: 2
Joined: Wed Nov 20, 2013 11:19 pm

Able with BlogEngine

Post by diablom » Thu Nov 21, 2013 3:59 pm

Running Able 7.0.6 14312 as site root, code now building on .NET 3.5, web application inside IIS running integrated .NET 4.0
Want to run BlogEngine 2.8.0.1 (which requires .NET 4.0) under a /blog/ subdirectory.

Set up virtual directory & application for /blog/ area as a seperate application pool. Used <location path="." inheritInChildApplications="false"> across AbleCommerce web.config file, primarily <system.web> . Even with inheritinChildApplications turned off, it's still trying to inherit from AbleCommerce:

Server Error in '/blog' Application.

Could not load file or assembly 'CommerceBuilder.Services' or one of its dependencies. The system cannot find the file specified.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileNotFoundException: Could not load file or assembly 'CommerceBuilder.Services' or one of its dependencies. The system cannot find the file specified.

I've already ported the 3.5 SectionGroups into the machine web.config files as per http://www.asp.net/whitepapers/aspnet4/breaking-changes. I've also tried the <remove name="AbleCommerceHttpModule"/> fix from this article as well http://blogengine.codeplex.com/discussions/392998

If I use <location path="." inheritInChildApplications="false"> on the root / AbleCommerce web.config <system.webServer> area I can get the blog up but lose the /Admin portal. So I need a workaround.

I've prett\y much exhausted all online resources I can find. Any idea on how to fix this?

User avatar
Katie
AbleCommerce Admin
AbleCommerce Admin
Posts: 2651
Joined: Tue Dec 02, 2003 1:54 am
Contact:

Re: Able with BlogEngine

Post by Katie » Fri Nov 22, 2013 10:24 am

It sounds like it should be working. I found another article which explains how to implement the change - http://www.hanselman.com/blog/ChangingA ... tions.aspx

Maybe it's something simple. If you can post your web.config file for review, we can try to help.
Thank you for choosing AbleCommerce!

http://help.ablecommerce.com - product support
http://wiki.ablecommerce.com - developer support

User avatar
AbleMods
Master Yoda
Master Yoda
Posts: 5170
Joined: Wed Sep 26, 2007 5:47 am
Location: Fort Myers, Florida USA

Re: Able with BlogEngine

Post by AbleMods » Fri Nov 22, 2013 8:52 pm

diablom wrote:Running Able 7.0.6 14312 as site root, code now building on .NET 3.5, web application inside IIS running integrated .NET 4.0
Want to run BlogEngine 2.8.0.1 (which requires .NET 4.0) under a /blog/ subdirectory.
Child applications should run the same version of ASP.Net as the parent. I don't believe it's possible to vary them.
Joe Payne
AbleCommerce Custom Programming and Modules http://www.AbleMods.com/
AbleCommerce Hosting http://www.AbleModsHosting.com/
Precise Fishing and Hunting Time Tables http://www.Solunar.com

diablom
Ensign (ENS)
Ensign (ENS)
Posts: 2
Joined: Wed Nov 20, 2013 11:19 pm

Re: Able with BlogEngine

Post by diablom » Sun Nov 24, 2013 5:43 pm

All I need is for some way that the child BlogEngine configuration to not inherit from AbleCommerce as the parent.

I've ran tests where I can get both applications working, but it requires removing all AbleCommerce related web.config files out of related subfolders (e.g. /Admin, /Checkout, /Members). This isn't an acceptable workaround as it exposes the limitation of AbleCommerce, namely /Admin can expose customer data without a web.config file due to the way the code works.

Config files follow:
Root / AbleCommerce web config:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<configSections>
		<sectionGroup name="AbleCommerce" type="CommerceBuilder.Configuration.AbleCommerceSettings, CommerceBuilder.Configuration">
			<section name="application" type="CommerceBuilder.Configuration.AbleCommerceApplicationSection, CommerceBuilder.Configuration" restartOnExternalChanges="true" requirePermission="false" />
			<section name="encryption" type="CommerceBuilder.Configuration.AbleCommerceEncryptionSection, CommerceBuilder.Configuration" restartOnExternalChanges="false" requirePermission="false" />
		</sectionGroup>
		<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" restartOnExternalChanges="false" requirePermission="false" />
		<!-- AJAX -->
		<!-- AJAX -->
		<section name="microsoft.web.services3" type="Microsoft.Web.Services3.Configuration.WebServicesConfiguration, Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
	</configSections>
	<AbleCommerce>
		<application configSource="App_Data\ablecommerce.config" />
		<encryption configSource="App_Data\encryption.config" />
	</AbleCommerce>
	<log4net configSource="App_Data\log4net.config" />
	<connectionStrings configSource="App_Data\database.config" />
	<appSettings>
		<add key="FCKeditor:UserFilesPath" value="~/Assets" />
		<add key="DatabaseLog" value="false" />
	</appSettings>
	<location path="." inheritInChildApplications="false">
		<system.web>
			<webServices>
				<protocols>
					<add name="HttpGet" />
					<add name="HttpPost" />
				</protocols>
			</webServices>
			<customErrors mode="Off" defaultRedirect="~/Errors/GeneralError.aspx">
				<error statusCode="404" redirect="~/Errors/PageNotFound.aspx" />
			</customErrors>
			<pages theme="AbleCommerce" enableEventValidation="false" validateRequest="false" clientIDMode="AutoID" >
				<controls>
					<!-- AJAX -->
					<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
					<add tagPrefix="ajax" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
					<add tagPrefix="ajax" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e" />
					<!-- AJAX -->
					<add tagPrefix="cb" namespace="CommerceBuilder.Web.UI.WebControls" assembly="CommerceBuilder.Web" />
					<add tagPrefix="ComponentArt" namespace="ComponentArt.Web.UI" assembly="ComponentArt.Web.UI" />
				</controls>
				<namespaces>
					<add namespace="System.Net" />
					<add namespace="System.Collections.Generic" />
					<add namespace="CommerceBuilder.Catalog" />
					<add namespace="CommerceBuilder.DigitalDelivery" />
					<add namespace="CommerceBuilder.Utility" />
					<add namespace="CommerceBuilder.Common" />
					<add namespace="CommerceBuilder.Users" />
					<add namespace="CommerceBuilder.Products" />
					<add namespace="CommerceBuilder.Payments" />
					<add namespace="CommerceBuilder.Payments.Providers" />
					<add namespace="CommerceBuilder.Stores" />
					<add namespace="CommerceBuilder.Messaging" />
					<add namespace="CommerceBuilder.Marketing" />
					<add namespace="CommerceBuilder.Shipping" />
					<add namespace="CommerceBuilder.Taxes" />
					<add namespace="CommerceBuilder.Taxes.Providers" />
					<add namespace="CommerceBuilder.Orders" />
					<add namespace="CommerceBuilder.Reporting" />
					<add namespace="CommerceBuilder.Web.UI" />
				</namespaces>
				<tagMapping>
					<add tagType="System.Web.UI.WebControls.CompareValidator" mappedTagType="Sample.Web.UI.Compatibility.CompareValidator, Validators, Version=1.0.0.0" />
					<add tagType="System.Web.UI.WebControls.CustomValidator" mappedTagType="Sample.Web.UI.Compatibility.CustomValidator, Validators, Version=1.0.0.0" />
					<add tagType="System.Web.UI.WebControls.RangeValidator" mappedTagType="Sample.Web.UI.Compatibility.RangeValidator, Validators, Version=1.0.0.0" />
					<add tagType="System.Web.UI.WebControls.RegularExpressionValidator" mappedTagType="Sample.Web.UI.Compatibility.RegularExpressionValidator, Validators, Version=1.0.0.0" />
					<add tagType="System.Web.UI.WebControls.RequiredFieldValidator" mappedTagType="Sample.Web.UI.Compatibility.RequiredFieldValidator, Validators, Version=1.0.0.0" />
					<add tagType="System.Web.UI.WebControls.ValidationSummary" mappedTagType="Sample.Web.UI.Compatibility.ValidationSummary, Validators, Version=1.0.0.0" />
					<add tagType="System.Web.UI.WebControls.WebParts.WebPartZone" mappedTagType="CommerceBuilder.Web.UI.WebControls.WebParts.WebPartZone" />
				</tagMapping>
			</pages>
			<!--
          Set compilation debug="true" to insert debugging
          symbols into the compiled page. Because this
          affects performance, set this value to true only
          during development.
    -->
			<trace enabled="true" requestLimit="10" pageOutput="false" localOnly="true" />
			<compilation debug="true" strict="false" explicit="false">
				<assemblies>
					<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
					<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
					<add assembly="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
					<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
					<add assembly="System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
					<add assembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
					<add assembly="System.Configuration.Install, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
					<add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
					<add assembly="stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
				</assemblies>
			</compilation>
			<httpHandlers>
				<!-- AJAX -->
				<remove verb="*" path="*.asmx" />
				<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
				<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
				<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
				<!-- AJAX -->
			</httpHandlers>
			<httpModules>
				<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
				<add name="AbleCommerceHttpModule" type="CommerceBuilder.Services.AbleCommerceHttpModule, CommerceBuilder.Services" />
			</httpModules>
			<authentication mode="Forms">
				<forms timeout="90" slidingExpiration="true" name="AC7.ASPXAUTH" />
			</authentication>
			<sessionState mode="InProc" timeout="30" cookieName="AC7.SESSIONID" />
			<siteMap defaultProvider="StoreSiteMap">
				<providers>
					<add name="StoreSiteMap" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Web.sitemap" />
					<add name="AdminMenuMap" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Admin/menu.sitemap" securityTrimmingEnabled="true" />
					<add name="AdminBreadCrumbsMap" type="CommerceBuilder.Web.UI.WebControls.DynamicSiteMapProvider" siteMapFile="~/Admin/breadcrumbs.sitemap" securityTrimmingEnabled="false" />
				</providers>
			</siteMap>
			<roleManager enabled="true" defaultProvider="AbleCommerceRoleProvider">
				<providers>
					<clear />
					<add name="AbleCommerceRoleProvider" type="CommerceBuilder.Users.AbleCommerceRoleProvider" connectionStringName="AbleCommerce6" applicationName="/" />
				</providers>
			</roleManager>
			<membership defaultProvider="AbleCommerceMembershipProvider">
				<providers>
					<clear />
					<add name="AbleCommerceMembershipProvider" connectionStringName="AbleCommerce6" applicationName="/" type="CommerceBuilder.Users.AbleCommerceMembershipProvider" />
				</providers>
			</membership>
			<profile enabled="false" />
			<webParts>
				<personalization defaultProvider="AbleCommercePersonalizationProvider">
					<providers>
						<clear />
						<add name="AbleCommercePersonalizationProvider" type="CommerceBuilder.Personalization.PersonalizationProvider" connectionStringName="AbleCommerce6" applicationName="/" />
					</providers>
					<authorization>
						<allow verbs="enterSharedScope" roles="System,Admin,Jr. Admin,Manage Website" />
					</authorization>
				</personalization>
			</webParts>
			<anonymousIdentification enabled="true" cookieName="AC7.ASPXANONYMOUS" cookieTimeout="1440" />
			<httpRuntime maxRequestLength="4096" requestValidationMode="2.0" />
			<globalization culture="en-AU" uiCulture="en-AU" />
			<identity impersonate="false" />
		</system.web>
	</location>
	<microsoft.web.services3>
		<policy fileName="Bin\wse3policyCache.config" />
	</microsoft.web.services3>
	<system.web.extensions>
		<scripting>
			<scriptResourceHandler enableCompression="true" enableCaching="true" />
		</scripting>
	</system.web.extensions>
	<system.webServer>
		<validation validateIntegratedModeConfiguration="false" />
		<modules runAllManagedModulesForAllRequests="true">
			<remove name="ScriptModule" />
			<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
			<add name="AbleCommerceHttpModule" type="CommerceBuilder.Services.AbleCommerceHttpModule, CommerceBuilder.Services" preCondition="managedHandler" />
		</modules>
		<handlers>
			<remove name="WebServiceHandlerFactory-Integrated" />
			<remove name="ScriptHandlerFactory" />
			<remove name="ScriptHandlerFactoryAppServices" />
			<remove name="ScriptResource" />
			<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
			<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
			<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
		</handlers>
		<urlCompression doStaticCompression="true" doDynamicCompression="true" />
		<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
			<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
			<staticTypes>
				<add mimeType="text/*" enabled="true" />
				<add mimeType="message/*" enabled="true" />
				<add mimeType="application/x-javascript" enabled="true" />
				<add mimeType="application/atom+xml" enabled="true" />
				<add mimeType="application/xaml+xml" enabled="true" />
				<add mimeType="*/*" enabled="false" />
			</staticTypes>
			<dynamicTypes>
				<add mimeType="text/*" enabled="true" />
				<add mimeType="message/*" enabled="true" />
				<add mimeType="application/x-javascript" enabled="true" />
				<add mimeType="application/json" enabled="true" />
				<add mimeType="*/*" enabled="false" />
			</dynamicTypes>
		</httpCompression>
		<staticContent>
			<clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
		</staticContent>
		<httpErrors>
			<remove statusCode="404" subStatusCode="-1" />
			<error statusCode="404" prefixLanguageFilePath="" path="/404custom-not-found.html" responseMode="ExecuteURL" />
		</httpErrors>
		<httpProtocol>
			<customHeaders>
				<add name="X-UA-Compatible" value="IE=EDGE" />
			</customHeaders>
		</httpProtocol>
	</system.webServer>
	<system.net>
		<settings>
			<httpWebRequest useUnsafeHeaderParsing="true" />
		</settings>
	</system.net>
	<system.serviceModel>
		<behaviors>
			<endpointBehaviors>
				<behavior name="PostCodeAspNetAjaxBehavior">
					<enableWebScript />
				</behavior>
				<behavior name="CalculatorAspNetAjaxBehavior">
					<enableWebScript />
				</behavior>
				<behavior name="MyBasketAspNetAjaxBehavior">
					<enableWebScript />
				</behavior>
				<behavior name="ReviewAspNetAjaxBehavior">
					<enableWebScript />
				</behavior>
				<behavior name="WsProductAspNetAjaxBehavior">
					<enableWebScript />
				</behavior>
				<behavior name="WsWishListAspNetAjaxBehavior">
					<enableWebScript />
				</behavior>
				<behavior name="WsSampleBasketAspNetAjaxBehavior">
					<enableWebScript />
				</behavior>
			</endpointBehaviors>
			<serviceBehaviors>
				<behavior name="PostCodeAspNetAjaxBehavior">
					<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
					<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
				</behavior>
				<behavior name="CalculatorAspNetAjaxBehavior">
					<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
					<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
				</behavior>
				<behavior name="MyBasketAspNetAjaxBehavior">
					<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
					<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
				</behavior>
				<behavior name="ReviewAspNetAjaxBehavior">
					<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
					<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
				</behavior>
				<behavior name="WsProductAspNetAjaxBehavior">
					<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
					<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
				</behavior>
				<behavior name="WsWishListAspNetAjaxBehavior">
					<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
					<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
				</behavior>
				<behavior name="WsSampleBasketAspNetAjaxBehavior">
					<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
					<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
				</behavior>
			</serviceBehaviors>
		</behaviors>
		<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
			<baseAddressPrefixFilters>
				<add prefix="http://www.blindswarehouse.com.au/wcf" />
			</baseAddressPrefixFilters>
		</serviceHostingEnvironment>
		<bindings>
			<webHttpBinding>
				<binding name="webBinding">
					<security mode="Transport">
					</security>
				</binding>
			</webHttpBinding>
		</bindings>
		<services>
			<service behaviorConfiguration="PostCodeAspNetAjaxBehavior" name="PostCode">
				<endpoint address="" behaviorConfiguration="PostCodeAspNetAjaxBehavior" binding="webHttpBinding" bindingConfiguration="webBinding" contract="PostCode" />
				<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
			</service>
			<service behaviorConfiguration="CalculatorAspNetAjaxBehavior" name="Calculator">
				<endpoint address="" behaviorConfiguration="CalculatorAspNetAjaxBehavior" binding="webHttpBinding" contract="Calculator" />
			</service>
			<service behaviorConfiguration="MyBasketAspNetAjaxBehavior" name="MyBasket">
				<endpoint address="" behaviorConfiguration="MyBasketAspNetAjaxBehavior" binding="webHttpBinding" contract="MyBasket" />
			</service>
			<service behaviorConfiguration="ReviewAspNetAjaxBehavior" name="Review">
				<endpoint address="" behaviorConfiguration="ReviewAspNetAjaxBehavior" binding="webHttpBinding" contract="Review" />
			</service>
			<service behaviorConfiguration="WsProductAspNetAjaxBehavior" name="WsProduct">
				<endpoint address="" behaviorConfiguration="WsProductAspNetAjaxBehavior" binding="webHttpBinding" contract="WsProduct" />
				<endpoint address="" behaviorConfiguration="WsProductAspNetAjaxBehavior" binding="webHttpBinding" bindingConfiguration="webBinding" contract="WsProduct" />
			</service>
			<service behaviorConfiguration="WsWishListAspNetAjaxBehavior" name="WsWishList">
				<endpoint address="" behaviorConfiguration="WsWishListAspNetAjaxBehavior" binding="webHttpBinding" contract="WsWishList" />
			</service>
			<service behaviorConfiguration="WsSampleBasketAspNetAjaxBehavior" name="WsSampleBasket">
				<endpoint address="" behaviorConfiguration="WsSampleBasketAspNetAjaxBehavior" binding="webHttpBinding" contract="WsSampleBasket" />
			</service>
		</services>
	</system.serviceModel>
</configuration>

/blog web config:

Code: Select all

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="BlogEngine">
      <section name="blogProvider" requirePermission="false" type="BlogEngine.Core.Providers.BlogProviderSection, BlogEngine.Core" allowDefinition="MachineToApplication" restartOnExternalChanges="true"/>
      <section name="blogFileSystemProvider" requirePermission="false" type="BlogEngine.Core.Providers.BlogFileSystemProviderSection, BlogEngine.Core" allowDefinition="MachineToApplication" restartOnExternalChanges="true"/>
    </sectionGroup>
  </configSections>
  <BlogEngine>
    <blogProvider defaultProvider="XmlBlogProvider" fileStoreProvider="XmlBlogProvider">
      <providers>
        <add description="Xml Blog Provider" name="XmlBlogProvider" type="BlogEngine.Core.Providers.XmlBlogProvider, BlogEngine.Core"/>
        <add connectionStringName="BlogEngine" description="Sql Database Provider" name="DbBlogProvider" type="BlogEngine.Core.Providers.DbBlogProvider, BlogEngine.Core"/>
      </providers>
    </blogProvider>
    <blogFileSystemProvider defaultProvider="XmlBlogProvider">
      <providers>
        <add description="Xml Blog Provider" name="XmlBlogProvider" type="BlogEngine.Core.Providers.XmlFileSystemProvider, BlogEngine.Core"/>
        <add storageVariable="BlogEngine" description="Sql Database Provider" name="DbBlogProvider" type="BlogEngine.Core.Providers.DbFileSystemProvider, BlogEngine.Core"/>
        <!--<add storageVariable="\\UNCPath\BlogFiles" description="UNC Path Provider" name="UNCBlogProvider" type="BlogEngine.Core.Providers.UNCFileSystemProvider, BlogEngine.Core" />-->
      </providers>
    </blogFileSystemProvider>
  </BlogEngine>
  <connectionStrings>
    <clear/>
    <add name="BlogEngine" connectionString="Server=.\SQLEXPRESS;Database=BlogEngine;Trusted_Connection=True;" providerName="System.Data.SqlClient"/>
    <!--<add name="BlogEngine" connectionString="Data Source=localhost;User ID=usernmae;Password=password;persist security info=False;initial catalog=BlogEngineFileStore;" providerName="System.Data.SqlClient"/>-->
  </connectionStrings>
  <appSettings>
    <add key="BlogEngine.FileExtension" value=".aspx"/>
    <!-- You can e.g. use "~/blog/" if BlogEngine.NET is not located in the root of the application -->
    <add key="BlogEngine.VirtualPath" value="~/"/>
    <!-- The regex used to identify mobile devices so a different theme can be shown -->
    <add key="BlogEngine.MobileDevices" value="(iemobile|iphone|ipod|android|nokia|sonyericsson|blackberry|samsung|sec\-|windows ce|motorola|mot\-|up.b|midp\-)"/>
    <!-- The name of the role with administrator permissions -->
    <add key="BlogEngine.AdminRole" value="Administrators"/>
    <!-- The name of the role for anonymous(non-authenticated) users. -->
    <add key="BlogEngine.AnonymousRole" value="Anonymous"/>
    <!-- The name of the role for Editors -->
    <add key="BlogEngine.EditorsRole" value="Editors"/>
    <!--This value is to provide an alternative location for storing data.-->
    <add key="StorageLocation" value="~/App_Data/"/>
    <!--This value is the folder name under the StorageLocation that data for blog instances will be stored in.-->
    <add key="BlogInstancesFolderName" value="blogs"/>
    <!--A comma separated list of script names to hard minify. It's case-sensitive. -->
    <add key="BlogEngine.HardMinify" value="blog.js,widget.js,WebResource.axd"/>
    <!--Any data grid in the admin panel should use this value for default number of items per page.-->
    <add key="BlogEngine.GenericPageSize" value="20"/>
  </appSettings>
  <system.serviceModel>
    <services>
      <service behaviorConfiguration="AuthenticationServiceBehaviors" name="System.Web.ApplicationServices.AuthenticationService">
        <endpoint binding="basicHttpBinding" contract="System.Web.ApplicationServices.AuthenticationService"/>
      </service>
    </services>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    <behaviors>
      <serviceBehaviors>
        <behavior name="AuthenticationServiceBehaviors">
          <serviceMetadata httpGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
  <system.web.extensions>
    <scripting>
      <webServices>
        <authenticationService enabled="true" requireSSL="false"/>
      </webServices>
    </scripting>
  </system.web.extensions>
  <system.web>
    <webServices>
      <protocols>
        <add name="HttpPost"/>
        <add name="HttpGet"/>
      </protocols>
      <authentication mode="Windows" />
      <authorization>
        <allow users="*" />
      </authorization>
    </webServices>
    <trace enabled="true" requestLimit="10" pageOutput="false" localOnly="true" />
    <compilation debug="true" strict="false" explicit="false" >
      <assemblies>
        <add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </assemblies>
      <!-- you may need it if you have issuew with razor/ajax in admin cshtml pages
      <buildProviders>
        <add extension=".cshtml" type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor"/>
      </buildProviders>
      -->
      <expressionBuilders>
        <add expressionPrefix="LinqLength" type="BlogEngine.Core.Compilation.LinqLengthExpressionBuilder, BlogEngine.Core"/>
        <add expressionPrefix="Reflect" type="BlogEngine.Core.Compilation.ReflectExpressionBuilder, BlogEngine.Core"/>
        <add expressionPrefix="Session" type="BlogEngine.Core.Compilation.SessionExpressionBuilder, BlogEngine.Core"/>
        <add expressionPrefix="Server" type="BlogEngine.Core.Compilation.ServerVariableExpressionBuilder, BlogEngine.Core"/>
        <add expressionPrefix="QueryString" type="BlogEngine.Core.Compilation.QueryStringExpressionBuilder, BlogEngine.Core"/>
        <add expressionPrefix="Code" type="BlogEngine.Core.Compilation.CodeExpressionBuilder, BlogEngine.Core"/>
      </expressionBuilders>
    </compilation>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="auto" uiCulture="auto"/>
    <httpRuntime enableVersionHeader="false" useFullyQualifiedRedirectUrl="true" maxRequestLength="16384" executionTimeout="3600" requestLengthDiskThreshold="16384" requestValidationMode="2.0"/>
    <machineKey validationKey="D9F7287EFDE8DF4CAFF79011D5308643D8F62AE10CDF30DAB640B7399BF6C57B0269D60A23FBCCC736FC2487ED695512BA95044DE4C58DC02C2BA0C4A266454C" decryptionKey="BDAAF7E00B69BA47B37EEAC328929A06A6647D4C89FED3A7D5C52B12B23680F4" validation="SHA1" decryption="AES"/>
    <authentication mode="Forms">
      <forms timeout="129600" name=".AUXBLOGENGINE" protection="All" slidingExpiration="true" loginUrl="~/Account/login.aspx" cookieless="UseCookies"/>
    </authentication>
    <pages enableSessionState="false" enableViewStateMac="true" enableEventValidation="true" controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID">
      <controls>
        <add namespace="App_Code.Controls" tagPrefix="blog"/>
      </controls>
    </pages>
    <customErrors mode="Off" defaultRedirect="~/error.aspx" redirectMode="ResponseRewrite">
      <error statusCode="404" redirect="~/error404.aspx"/>
    </customErrors>
    <membership defaultProvider="XmlMembershipProvider">
      <providers>
        <clear/>
        <add name="XmlMembershipProvider" type="BlogEngine.Core.Providers.XmlMembershipProvider, BlogEngine.Core" description="XML membership provider" passwordFormat="Hashed"/>
        <add name="SqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="BlogEngine" applicationName="BlogEngine"/>
        <add name="DbMembershipProvider" type="BlogEngine.Core.Providers.DbMembershipProvider, BlogEngine.Core" passwordFormat="Hashed" connectionStringName="BlogEngine"/>
      </providers>
    </membership>
    <roleManager defaultProvider="XmlRoleProvider" enabled="true" cacheRolesInCookie="false">
      <providers>
        <clear/>
        <add name="XmlRoleProvider" type="BlogEngine.Core.Providers.XmlRoleProvider, BlogEngine.Core" description="XML role provider"/>
        <add name="SqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="BlogEngine" applicationName="BlogEngine"/>
        <add name="DbRoleProvider" type="BlogEngine.Core.Providers.DbRoleProvider, BlogEngine.Core" connectionStringName="BlogEngine"/>
      </providers>
    </roleManager>
    <siteMap defaultProvider="PageSiteMap" enabled="true">
      <providers>
        <add name="PageSiteMap" description="The site map provider that reads in the .sitemap XML files." type="BlogEngine.Core.Web.Controls.PageSiteMap, BlogEngine.Core"/>
        <add name="SecuritySiteMap" description="Used for authenticated users." type="BlogEngine.Core.SecuritySiteMapProvider, BlogEngine.Core" securityTrimmingEnabled="true" siteMapFile="Web.sitemap"/>
      </providers>
    </siteMap>
    <httpModules>
      <add name="WwwSubDomainModule" type="BlogEngine.Core.Web.HttpModules.WwwSubDomainModule, BlogEngine.Core"/>
      <add name="UrlRewrite" type="BlogEngine.Core.Web.HttpModules.UrlRewrite, BlogEngine.Core"/>
      <add name="CompressionModule" type="BlogEngine.Core.Web.HttpModules.CompressionModule, BlogEngine.Core"/>
      <add name="ReferrerModule" type="BlogEngine.Core.Web.HttpModules.ReferrerModule, BlogEngine.Core"/>
      <add name="SecurityModule" type="BlogEngine.Core.Security, BlogEngine.Core"/>
      <add name="RightModule" type="BlogEngine.Core.Right, BlogEngine.Core"/>
      <!--Remove the default ASP.NET modules we don't need-->
      <remove name="PassportAuthentication"/>
      <remove name="Profile"/>
      <remove name="AnonymousIdentification"/>
    </httpModules>
    <httpHandlers>
      <add verb="*" path="file.axd" type="BlogEngine.Core.Web.HttpHandlers.FileHandler, BlogEngine.Core" validate="false"/>
      <add verb="*" path="image.axd" type="BlogEngine.Core.Web.HttpHandlers.ImageHandler, BlogEngine.Core" validate="false"/>
      <add verb="*" path="syndication.axd" type="BlogEngine.Core.Web.HttpHandlers.SyndicationHandler, BlogEngine.Core" validate="false"/>
      <add verb="*" path="sitemap.axd" type="BlogEngine.Core.Web.HttpHandlers.SiteMap, BlogEngine.Core" validate="false"/>
      <add verb="*" path="trackback.axd" type="BlogEngine.Core.Web.HttpHandlers.TrackbackHandler, BlogEngine.Core" validate="false"/>
      <add verb="*" path="pingback.axd" type="BlogEngine.Core.Web.HttpHandlers.PingbackHandler, BlogEngine.Core" validate="false"/>
      <add verb="*" path="opensearch.axd" type="BlogEngine.Core.Web.HttpHandlers.OpenSearchHandler, BlogEngine.Core" validate="false"/>
      <add verb="*" path="metaweblog.axd" type="BlogEngine.Core.API.MetaWeblog.MetaWeblogHandler, BlogEngine.Core" validate="false"/>
      <add verb="*" path="rsd.axd" type="BlogEngine.Core.Web.HttpHandlers.RsdHandler, BlogEngine.Core" validate="false"/>
      <!--<add verb="*" path="css.axd" type="BlogEngine.Core.Web.HttpHandlers.CssHandler, BlogEngine.Core" validate="false"/>-->
      <add verb="*" path="*.js.axd" type="BlogEngine.Core.Web.HttpHandlers.JavaScriptHandler, BlogEngine.Core" validate="false"/>
      <add verb="*" path="*.res.axd" type="BlogEngine.Core.Web.HttpHandlers.ResourceHandler, BlogEngine.Core" validate="false"/>
      <add verb="*" path="rating.axd" type="BlogEngine.Core.Web.HttpHandlers.RatingHandler, BlogEngine.Core" validate="false"/>
      <add verb="*" path="opml.axd" type="BlogEngine.Core.Web.HttpHandlers.OpmlHandler, BlogEngine.Core" validate="false"/>
      <add verb="*" path="blogml.axd" type="BlogEngine.Core.Web.HttpHandlers.BlogMLExportHandler, BlogEngine.Core" validate="false"/>
      <add verb="*" path="sioc.axd" type="BlogEngine.Core.Web.HttpHandlers.Sioc, BlogEngine.Core" validate="false"/>
      <add verb="*" path="apml.axd" type="BlogEngine.Core.Web.HttpHandlers.Apml, BlogEngine.Core" validate="false"/>
      <add verb="*" path="foaf*.axd" type="BlogEngine.Core.Web.HttpHandlers.Foaf, BlogEngine.Core" validate="false"/>
      <add verb="*" path="*.htm" type="System.Web.StaticFileHandler"/>
    </httpHandlers>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <!-- Enable the staticContent section below to add Expires headers to images for better performance.
         Some hosting providers does not allow the staticContent section to be set. -->
    <!--
    <staticContent>
      <clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
      <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
    </staticContent>
    -->
    <modules runAllManagedModulesForAllRequests="true">
      <add name="WwwSubDomainModule" type="BlogEngine.Core.Web.HttpModules.WwwSubDomainModule, BlogEngine.Core"/>
      <add name="UrlRewrite" type="BlogEngine.Core.Web.HttpModules.UrlRewrite, BlogEngine.Core"/>
      <add name="CompressionModule" type="BlogEngine.Core.Web.HttpModules.CompressionModule, BlogEngine.Core"/>
      <add name="ReferrerModule" type="BlogEngine.Core.Web.HttpModules.ReferrerModule, BlogEngine.Core"/>
      <add name="SecurityModule" type="BlogEngine.Core.Security, BlogEngine.Core"/>
      <add name="RightModule" type="BlogEngine.Core.Right, BlogEngine.Core"/>
    </modules>
    <handlers accessPolicy="Read, Write, Script, Execute">
      <add name="FileHandler" verb="*" path="file.axd" type="BlogEngine.Core.Web.HttpHandlers.FileHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="ImageHandler" verb="*" path="image.axd" type="BlogEngine.Core.Web.HttpHandlers.ImageHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="Syndication" verb="*" path="syndication.axd" type="BlogEngine.Core.Web.HttpHandlers.SyndicationHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="Sitemap" verb="*" path="sitemap.axd" type="BlogEngine.Core.Web.HttpHandlers.SiteMap, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="Trackback" verb="*" path="trackback.axd" type="BlogEngine.Core.Web.HttpHandlers.TrackbackHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="Pingback" verb="*" path="pingback.axd" type="BlogEngine.Core.Web.HttpHandlers.PingbackHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="OpenSearch" verb="*" path="opensearch.axd" type="BlogEngine.Core.Web.HttpHandlers.OpenSearchHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="MetaWeblog" verb="*" path="metaweblog.axd" type="BlogEngine.Core.API.MetaWeblog.MetaWeblogHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="RSD" verb="*" path="rsd.axd" type="BlogEngine.Core.Web.HttpHandlers.RsdHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <!--<add name="CssHandler" verb="*" path="css.axd" type="BlogEngine.Core.Web.HttpHandlers.CssHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>-->
      <add name="WebResource" path="*.js.axd" verb="*" type="BlogEngine.Core.Web.HttpHandlers.JavaScriptHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="Resource" verb="*" path="*.res.axd" type="BlogEngine.Core.Web.HttpHandlers.ResourceHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="Rating" verb="*" path="rating.axd" type="BlogEngine.Core.Web.HttpHandlers.RatingHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="Opml" verb="*" path="opml.axd" type="BlogEngine.Core.Web.HttpHandlers.OpmlHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="BlogML" verb="*" path="blogml.axd" type="BlogEngine.Core.Web.HttpHandlers.BlogMLExportHandler, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="SIOC" verb="*" path="sioc.axd" type="BlogEngine.Core.Web.HttpHandlers.Sioc, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="Apml" verb="*" path="apml.axd" type="BlogEngine.Core.Web.HttpHandlers.Apml, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="Foaf" verb="*" path="foaf*.axd" type="BlogEngine.Core.Web.HttpHandlers.Foaf, BlogEngine.Core" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode"/>
      <add name="Html" path="*.htm" verb="*" type="System.Web.StaticFileHandler" resourceType="Unspecified" preCondition="integratedMode"/>
    </handlers>
    <!-- Enable the httpProtocol section below to manipulate some HTTP headers.
         Some hosting providers does not allow the httpProtocol section to be set. -->
    <!--
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
        <add name="Etag" value=" " />
      </customHeaders>
    </httpProtocol>
    -->
    <!-- <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true"/> -->
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" cacheControlCustom="public"/>
      <remove fileExtension=".ico"/>
      <mimeMap fileExtension=".ico" mimeType="image/x-icon"/>
    </staticContent>
  </system.webServer>
</configuration>

Post Reply