Configuring web.config Files

The following configuration is essential for a DPE-inside system to work properly.

A web.config file is the configuration file for a web app in the Microsoft IIS web server. 

The following areas can be configured in the web.config files:

(Shared) Temp Folders

Temp folders are used for storing temporary files and for sharing cached files (e.g. on-the-fly audio conversion, on-the-fly waveform creation). Especially for file caches used from various components running on different computers it is important that the temp folder is configured to an accessible file share.

If no temp folder is defined, DPE uses the standard temp folder provided by the operating system, e.g. %SystemRoot%\temp. If not existing, the temp folder(s) will be re-created automatically.

Both web.config files contain the optional parameter TempFolder in <appSettings>, eg.<add key = "TempFolder" value="C:\Temp" /> . Any folder can be specified as temp folder for DPE. It the temp folder is shared then both web.config files should have the same temp folder configured.


Whatever temp folder is used, a subdirectory "Dpe" will be created. Components may further create subdirectories inside:

<Temp Folder>\DPE\ may contain the following subdirectories:

Download

For Download.ashx, used for:

  • Protocol-Export with traversal-check
  • Parameter-Export
  • Workflow-Template-Export
Upload

For Upload.ashx, used for:

  • Protocol-Import with traversal-check
  • uses "Upload"
  • Workflow-Template-Import
MediaCacheFor Media.ashx with on-the-fly conversion and cleanup
WaveformCacheFor WaveformService with cleanup

Automated Cleanup of Temp Folders

The following parameters can be used to customize the automated cleanup of temp folders:

For WaveformCache folder in DpeWebApplication web.config

WaveformCache.Cleanup.LowWaterMarkGbLow water mark. Disk usage after cleanup task was executed, default value = 10 (GB)
WaveformCache.Cleanup.HighWaterMarkGbHigh water mark. If disk usage is above high water mark, delete oldest files (last access date) until disk usage is lower than low water mark, default value = 20 (GB)
<add key="WaveformCache.Cleanup.LowWaterMarkGb" value="10" />
<add key="WaveformCache.Cleanup.HighWaterMarkGb" value="20" />


For MediaCache folder in DpeWebApplication web.config

AudioConversionCache.Cleanup.LowWaterMarkGbLow water mark. Disk usage after cleanup task was executed, default value = 10 (GB)
AudioConversionCache.Cleanup.HighWaterMarkGbHigh water mark. If disk usage is above high water mark, delete oldest files (last access date) until disk usage is lower than low water mark, default value = 20 (GB)
<add key="AudioConversionCache.Cleanup.LowWaterMarkGb" value="10" /> 
<add key="AudioConversionCache.Cleanup.HighWaterMarkGb" value="20" />

Automatic Logout function

DPE application's pages have an automatic logoff time option which can be configured in the web.config file in the DpeWebapplication folder of your installation. The timeout is specified in minutes.

<authentication mode="Forms">
  <forms name="MyFormsAuthCookie" timeout="2880" slidingExpiration="true" loginUrl="Logon.aspx" ticketCompatibilityMode="Framework40" />
</authentication>

Cross-Origin Resource Sharing (CORS)

It is standard procedure that web sites only can access web services of the same domain (http://[domain name]/). With CORS the DPE server can allow other client machines to use the DPE Services within another clients web applications. 

Enable/configure CORS support in web.config : 

<add key="CorsAllowOrigin" value="[domain]"/>

To allow all cross domain calls to DPE services, enter e.g.

<add key="CorsAllowOrigin" value="*"/>

Change the Default SAF Service Port

The communication between the SAF servers and the SAF Monitor section of the DPE Admin is using port 31810 as default. The port must be open in the Firewall configuration, see DPE Firewall Settings. To change the port number enter the following lines into the Web.config within the appsettings element:

<appSettings>
 <add key="SafServicePort" value="[PORT]"/> 
</appSettings>

Configure Retries and Timeouts For Notification

For clients being registrered as observer in the DPE WebServices (such as WorkflowService or JobQueueService, the retries and timeouts for notifications are defined as follows in the section appSettings (Default settings in seconds):

<add key="NotificationTimeout" value="10"/> 
<add key="NotificationRetries" value="1"/> 
<add key="NotificationThreads" value="2"/>

Index of Options in DpeWebApplication web.config

Parameter

Description

TempFolderOptional, set the temp folder for DPE. Note: workflow-based on-the-fly creation of lores audio or waveform requires the TempFolder to be set to a shared folder.
CorsAllowOriginOptional, configures CORS, e.g. http://crossdpe:8046
ServiceRootAddress

Normally auto-detected, only needed for decentralized environments, e.g. //MyDpe/DpeWebApplication

SafServiceBindToOptional, normally auto-detected, needed in environments with more than one network Adapter, e.g. 10.1.254.15
SafServiceAutomaticStartOptional, starts SafService together with AppPool, e.g. true, default: false
NotificationTimeoutOptional, default=10, default values should be sufficient.
NotificationRetriesOptional, default=1, default values should be sufficient.
ThreadPoolMinThreads

Optional (set to 100 from DpeSetup). Sets the minimum amount of threads waiting in the ThreadPool. Available since DPE 1.9.33. BrowserBridgeService long polling requires a lot of thread pool threads. Value should be not lower than the number of DPE clients.

WaveformCache.Cleanup.LowWaterMarkGb
WaveformCache.Cleanup.HighWaterMarkGb
AudioConversionCache.Cleanup.LowWaterMarkGb
AudioConversionCache.Cleanup.HighWaterMarkGb
OnTheFlyAudioConversion.EnabledAllows to switch off on-the-fly audio conversion, default: true.
OnTheFlyAudioConversion.LocalEnabledDeprecated, default: false. Enables local on-the-fly audio conversion. Please use workflow-based on-the-fly audio conversion instead (which is the default).
OnTheFlyAudioConversion.FormatOverrides the default lores format for the on-the-fly audio conversion. Default: [FILETYPE]RAW[FORMAT]MPEG-LAYER3[SAMPLERATE]48000[BITRATE]128[MODE]Stereo[RELAXED_ERROR_CHECK]1.
OnTheFlyWaveform.EnabledAllows to switch off on-the-fly waveform creation, default: true.

ExtToType

ExtToClass

When streaming files to DPE via the UploadMedium.ashx service, DPE maps file extensions to medium types and entry classes. This is used for example when dropping a file onto Content Manager entry list.

Default mappings can be configured and adapted in web.config.

Example for adding OGG to medium type Audio and to entry class Audio:

<add key="ExtToType" value="Audio=wav,mp2,mp3,flac,bwf,mus,aac,m4a,ogg"/>
<add key="ExtToClass" value="Audio=wav,mp2,mp3,flac,bwf,mus,aac,m4a,ogg"/>

Only the media type or classes specified will be changed from the default, e.g. in the above example mapping for Video would not be changed.


The complete syntax is:

MediumTypeSpecifier1|MediumTypeSpecifier2|...

Where MediumTypeSpecifier is

MediumType=Ext1,Ext2,Ext3,...

Where Ext can be specified with or without leading dot. It is also possible to specify no extension at all.

It also possible to disable a mapping by specifying no extension at all, e.g.

<add key="ExtToType" value="Audio=wav,mp2,mp3,flac,bwf,mus,aac,m4a,ogg|Video=|Text="/>


Current default media type mappings are

  • Audio=wav,mp2,mp3,flac,bwf,mus,aac,m4a
  • Video=mxf,mp4,mov
  • Graphic=jpg,png,gif,bmp,tga
  • Text=txt
  • Text.InfoText=rtf
  • Zip-Archive.Zip-File=zip
  • Data.SpeechToText=s2t
  • Data.Waveform=waveform

Current default entry class mappings are

  • Audio=wav,mp2,mp3,flac,bwf,mus,aac,m4a
  • Video=mxf,mp4,mov
  • Graphic=jpg,png,gif,bmp,tga
  • Text=txt,rtf
  • Zip-Archiv=zip
Scaling

Only needed when the machine you are running the DPE Server has a windows scaling factor not equal to 100%.

Inside from IIS we cannot reliable detect the windows scaling factor needed for correct conversion of line heights in RTF documents. If you have for example a windows scaling of 125% on your backend server set this value to 125.

SkipReverseDnsThe DPE Server tries to detect the client machine name by using reverse DNS. This does not work outside of your companies domain. Set this value to 1 when your DPE Server is running in the cloud to skip reverse DNS and to avoid getting incorrect machine names.

Experimental or Advanced Debugging Options
HttpResponseHeader.AddRealMachineName

Optional, Adds a HTTP response header containing MachineName to all DPE responses (DPE >= 1.7.104, set to "1"). Can be used to analyse DNS resolution.

LoggerClient.AddRealMachineName

Optional, Adds a prefix containing MachineName to all log messages written by LoggerClient (DPE >= 1.7.104, set to "1"). Can be used to analyse DNS resolution.


Experimental Faceted Search Options
LogFacets

Configures faceted search on Log page. Default: "Created,Level,Category,ComputerName,UserName,Component"

RegistryFacetsConfigures faceted search on Parameter files page. Default: "Type,Modified,Created"
WorkflowFacetsConfigures faceted search on Workflow Monitor page. Default: "Created,State,WorkflowType,Creator,CreatingComponent"
SafMonitorFacetsConfigures faceted search on Workflow Monitor page. Default: "Connection,State,Computer,Server,Type,Version"
ContentFacets

Configures faceted search on Content Manager page. Default: "Modified,State,Class,Ready,Perfect,Invalid"

Comma-separated list of facets. Each facet is specified in the following format:

<FacetFunctionName>
  [|Name=<MetadataFieldName>]
  [|Order=<OrderChar>]
  [|SingleSelection=true/false]
  [|Label=<L1>.<L2>]

Additional parameter keys can be abbreviated, e.g. N instead of Name.

OrderChar is one of...

A for label alphabetical ascending
Z for label alphabetical descending
0 for label numerical ascending
9 for label numerical descending
X for count max descending


FacetFunctionName can be a dedicated facet function like Created or a generic one like General  or GeneralDateTime that requires additional parameters.

Example using existing hard-coded facets:

Created,CreatedYears,Modified,State,Class,Ready,Perfect,Invalid,Editor

Example that specifies a facet by using the General-facet together with some configuration:

General|N=Author,General|N=Language,General|Name=Program,General|N=LowResExists

Example which maps facet values to a display text, e.g. the value 2 is displayed as "Group":

General|N=Story|D=Group/Story|L=0.Entry.2.Group.3.Story

Example with GeneralDateTime-facet:

Modified,State,Class,GeneralDateTime|N=BroadcastDate|D=Broadcasted,GeneralDateTime|N=AvailDate|D=Avail,GeneralDateTime|N=LastSendDate|D=LastSend