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.
TempFolder
Optional, set the temp folder for DPE
Workflow-based on-the-fly creation of lores audio or waveform requires the TempFolder to be set to a shared folder.
- 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
- MediaCache, for Media.ashx with on-the-fly conversion and cleanup
- WaveformCache, for WaveformService with cleanup
Automated Cleanup of Temp Folders
The following parameters can be used to customize the automated cleanup of temp folders:
Waveform Cache
For WaveformCache folder in DpeWebApplication web.config
<add key="WaveformCache.Cleanup.LowWaterMarkGb" value="10" />
<add key="WaveformCache.Cleanup.HighWaterMarkGb" value="20" />
WaveformCache.Cleanup.LowWaterMarkGb
- Low water mark. Disk usage after cleanup task was executed, default value = 10 (GB)
WaveformCache.Cleanup.HighWaterMarkGb
- High 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)
Audio Conversion Cache
<add key="AudioConversionCache.Cleanup.LowWaterMarkGb" value="10" />
<add key="AudioConversionCache.Cleanup.HighWaterMarkGb" value="20" />
For MediaCache folder in DpeWebApplication web.config
AudioConversionCache.Cleanup.LowWaterMarkGb
- Low water mark. Disk usage after cleanup task was executed, default value = 10 (GB)
AudioConversionCache.Cleanup.HighWaterMarkGb
- High 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)
Automatic Logout function
Note
Since DPE 2.5 authentication is not using IIS Forms authentication anymore. Therefore this feature is not available anymore.
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)
CorsAllowOrigin
- Optional, configures CORS, e.g. http://crossdpe:8046
- 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:
CODE<add key="CorsAllowOrigin" value="[domain]"/>
To allow all cross domain calls to DPE services, enter e.g.
CODE<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"/>
NotificationTimeout
- Optional, default values should be sufficient!
- Default: 10
NotificationRetries
- Optional, default values should be sufficient.
- Default: 1
NotificationThreads
- Optional, default values should be sufficient
- Default: 2
Configure on-the-fly Audio & Waveform creation
OnTheFlyAudioConversion.Enabled
- Allows to switch off on-the-fly audio conversion
- Default: true
OnTheFlyAudioConversion.LocalEnabled
- Deprecated. Enables local on-the-fly audio conversion. Please use workflow-based on-the-fly audio conversion instead (which is the default).
- Default: false
OnTheFlyAudioConversion.Format
- Overrides 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
OnTheFlyAudioConversion.Extension
- Overrides the default allowed extension for lores audio files.
- Default: .mp3
OnTheFlyWaveform.Enabled
- Allows to switch off on-the-fly waveform creation
- Default: true.
Further web.config settings for DpeWebApplication
Standard
ServiceRootAddress
- Normally auto-detected, only needed for decentralized environments, e.g. //MyDpe/DpeWebApplication
SafServiceBindTo
- Optional, normally auto-detected, needed in environments with more than one network Adapter, e.g. 10.1.254.15
SafServiceAutomaticStart
- Optional, starts SafService together with AppPool, e.g. true
- Default: false
ThreadPoolMinThreads
- Optional. 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.
- Default: 100 (set from DpeSetup)
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:
CODE<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:
CODEMediumTypeSpecifier1|MediumTypeSpecifier2|...
Where MediumTypeSpecifier is
CODEMediumType=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.
CODE<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.
SkipReverseDns
- The 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.
DpeDefaultComputerName
Starting with DPE Server 2.5.138 this key replaces the Global|Default|Common|DpeDefaultComputerName parameter:
On DPE login, if the computer name could not be retrieved automatically by the web application (e.g. computer outside of a domain), the DpeDefaultComputerName value is applied by default and saved in a cookie for later usage. This way the user is not asked for entering the computer name. If the parameter is missing, and the computer name is not retrieved then the web application will ask explicitly for the computer name on the login page.
SendRestartNotification
On startup the DPE Server tries to send restart notifications to registered observers, e.g. DPE Processors. Restart notifications reduce the time needed until the SAF modules re-register as observers.
The following modes are available (and can be combined in a comma-separated list, e.g. "$,name1,name2")
- "*": send notifications to all registered SAF modules independent to which DPE Server name they are connected
- "$" (default): send notifications to all registered SAF modules that are connected to the DPE Server name matching Environment.MachineName
- "!": do not send any notifications
- "name1,name2": send notifications to all registered SAF modules where DPE Server name matches one name in the list
This setting is useful in DPE Server fail-over scenarios where the public DPE Server name is different from the real machine name, e.g.
- Public URL: https://mydpe.mydomain.com/DpeWebApplication
- DPE Server #1 runs on machine DPESERVER1
- DPE Server #2 runs on machine DPESERVER2
- SendRestartNotification = $,mydpe.mydomain.com,DPESERVER1,DPESERVER2 or just *
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.
HttpReqFileLog
Optional, activates and sets the path to low-level log files tracking on HTTP request level, e.g. "C:\Temp\DpeLogs\MyLogs.log".
A new file will be created per hour named like the filename body postfixed by a date and hour text e.g. MyLogs_2201012_03.log
This may slow down execution performance so make sure you switch it off after testing.
This may create large files with thousands of log lines in short time.
HttpReqFileLogIncludingRegex
- Optional, a regular expression filter that specifies the lines of text that are included in the log, e.g. "ContentService" or "EasyQueryChangeNumber"
HttpReqFileLogExcludingRegex
- Optional, a regular expression filter that specifies the lines of text that are excluded from the log, e.g. "LoggingService"
HttpReqFileLogOptions
Optional
- F = Include full URL including protocol, host and port
- B = Include request body
- U = Resolve and include user authentication
- D = Resolve IP addresses to names via DNS
- R = Include response body
- r = Include first 200 bytes of response body
- H = Include request headers
- P = Log Application_PreRequest+PostRequest calls in Global.asax
- Default: "BUDr"
Advanced Faceted Search Options
LogFacets
- Configures faceted search on Log page
- Default: "Created,Level,Category,ComputerName,UserName,Component"
RegistryFacets
- Configures faceted search on Parameter files page
- Default: "Type,Modified,Created"
WorkflowFacets
- Configures faceted search on Workflow Monitor page
- Default: "Created,State,WorkflowType,Creator,CreatingComponent"
SafMonitorFacets
- Configures faceted search on Workflow Monitor page
- Default: "Connection,State,Computer,Server,Type,Version"
ContentFacets
Configures faceted search on Content Manager page
Comma-separated list of facets. Each facet is specified in the following format:TEXT<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...
TEXTA 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:
TEXTCreated,CreatedYears,Modified,State,Class,Ready,Perfect,Invalid,Editor
Example that specifies a facet by using the General-facet together with some configuration:
TEXTGeneral|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":
CODEGeneral|N=Story|D=Group/Story|L=0.Entry.2.Group.3.Story
Example with GeneralDateTime-facet:
CODEModified,State,Class,GeneralDateTime|N=BroadcastDate|D=Broadcasted,GeneralDateTime|N=AvailDate|D=Avail,GeneralDateTime|N=LastSendDate|D=LastSend
- Default: "Modified,State,Class,Ready,Perfect,Invalid"