Skip to main content
Windward

The Windward Config Files: What They Are and How They Work

Overview

This article explains the different types of config files and why it’s important to know the difference when using the .NET Engine.

 

app.exe.config

In the .NET environment, we are encouraged by Microsoft to use a config file rather than the OS registry for settings and values. The advantage to this is that you can use config files to copy all files to a new location without requiring the migration of a bunch of different settings and values in the registry.

The name and location of these files is set by Microsoft and cannot be overridden (it is different for Office Add-Ins such as AutoTag). The schema for the config (XML) file is also specified by Microsoft.

 

For an ASP.NET application, the config file is named ‘web.config’ and goes in the root directory of the website.

 

For a program named ‘RunReport.exe’ the file is labeled ‘RunReport.exe.config’. This must be in the same directory as RunReport.exe. If you rename ‘RunReport.exe’ to ‘MyCoolApp.exe,’ then you need to also rename the config file ‘MyCoolApp.exe.config’. The common shorthand for the config file is ‘app.exe.config,’ but that is not its actual name (unless your application is named ‘app.exe,’ which is unlikely).

 

Sample Config File

We provide a sample config file named ‘WindwardReports.dll.config’ with the .NET Engine, but a config file with that name is not read by Windward. Please do not try to use a file with this name.

 

Below is a sample config file with the minimum required settings for Windward. At a minimum, your license key must go in this file. The Windward .NET Engine will not look in the registry for the license key, it must be in the config file. Generally, (definitely, in the case of an ASP.NET app), you will have additional sections in this file.

 

Here is an example:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <configSections>
  <section name="WindwardReports" type="System.Configuration.NameValueSectionHandler"/>
 </configSections>  

 <WindwardReports>
  <!-- Put your key here. Multiple lines are ok but do not put spaces at the beginning/end of the lines -->
  <add key="license" value="the/license/goes/here"/>
 </WindwardReports>

</configuration>

 

 

Logging:

 

Here is a sample config file with logging enabled:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

 

     ​<configSections>
         ​ <section name="WindwardReports" type="System.Configuration.NameValueSectionHandler"/>

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />

   </configSections>  

 

   <WindwardReports>
      ​    <!-- Put your key here. Multiple lines are ok but do not put spaces at the beginning/end of ​the lines -->
          <add key="license" value="the/license/goes/here"/>
  </WindwardReports>

 

<log4net>
        <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
            <param name="File" value="RunReport.log" />
            <param name="AppendToFile" value="true" />
            <param name="MaxSizeRollBackups" value="2" />
            <param name="MaximumFileSize" value="100KB" />
            <param name="RollingStyle" value="Size" />
            <param name="StaticLogFileName" value="true" />
            <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] ac.server %-5p %c - %m%n" />
            </layout>
        </appender>
        <root>
            <level value="INFO" />
            <appender-ref ref="RollingFileAppender" />
        </root>
    </log4net>

 

</configuration>

 

 

Note: If logging is slowing you down, please see the article from Apache to remove or disable https://logging.apache.org/log4net/r...roduction.html

Registry:

 

It is not encouraged, but you can use the registry instead of a config file. If a config setting is not found in the app.exe.config file, then it will first look in:

HKEY_CURRENT_USER\Software\Windward Studios\Reporting Engine

for a value with the key name.

 

If not found there, it will then look in:

HKEY_LOCAL_MACHINE\Software\Windward Studios\Reporting Engine

 

So for the config value <add key="odata.max-message-size" value="10000000"/> you can instead create the registry entry:

HKEY_CURRENT_USER\Software\Windward Studios\Reporting Engine!odata.max-message-size = 10000000

 

All registry values should be created as string values.

 

Log Not Being Created?

 

Having problems with your log file not being created? Here is how to address that:

 

If you configured logging in your config file and you find that there is no log file created, make sure you have permissions to write into the location where you've told the .config file to create the log file.

 

If that does not resolve the issue, then try the following:

Give the following code in your application before you put your logging code:

log4net.Config.XmlConfigurator.Configure();

 

You can define it in Global.asax:

void Application_Start(object sender, EventArgs e)

{

    // Code that runs on application startup

 

    // Initialize log4net.

    log4net.Config.XmlConfigurator.Configure();

}

 

You can also add the following line (either mentioning your config file name or not):

 

[assembly: log4net.Config.XmlConfigurator]

 

Or

 

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]

 

 

Available Settings:

 

"strip-conditions-on-schema-select" (For AutoTag only).

 

Setting this to true will remove the “where” and “order by” clauses from a select when querying the metadata in your datasource. These clauses are not needed to retrieve the metadata. The Microsoft ADO.NET component makes a .XLS(X)/.CSV file pretending it’s a SQL database. The ADO.NET driver has problems with parameters in the select when querying metadata so this needs to be set for that case:

<appSettings>

          <add key="strip-conditions-on-schema-select" value="true"/>

</appSettings>.