Configure the File adapter
How to configure the File adapter, read the security recommendations, and view the required permissions.
You can create a receive location and send port using BizTalk Server Administration, or programmatically. This topic focuses on the BizTalk Server Administration console. For the programmatic steps, go to Create the receive location or send port programmatically.
Important
Starting with BizTalk Server 2016, you can connect to an Azure file share using the File adapter. The Azure storage account must be mounted on your BizTalk Server. Get started with Azure File Storage on Windows lists the mounting steps.
Security recommendations
The File adapter transfers files into and out of BizTalk Server from and to a directory. It is recommended you follow these guidelines for securing and deploying the File adapter in your environment:
Do not open ports to connect to a file share in the perimeter network. You should use the File adapter in environments where there is a high level of trust, such as an intranet.
Set strong discretionary access control lists (DACL) in the receive location's drop directories. For example, you must set read, write, delete files, and delete subfolders and files permissions to the directory from which the file receive location picks up messages, so that only authorized users can drop messages in this location.
When you use the File adapter to pick up critical data, it is recommended to use Internet Protocol Security (IPSec.)
Required permissions
Adapter handlers run under the security context of the host instance selected for the adapter handler. The host instance uses the Logon
property in the Host name - Host Instance Properties in BizTalk Administration. This Logon
account must have specific permissions to any folders or shares used by the File adapter.
The host instance user account used by the handler requires the following permissions. A ✔ means the permission is required. A blank entry means the permission is not required.
Permissions | Receive handler | Send handler |
---|---|---|
Full control | ✔ at the share level (if accessing a file share) |
|
Traverse folder / execute file | ✔ at the file level |
|
List folder / read data | ✔ at the file level |
✔ at the file level |
Read attributes | ✔ at the file level |
|
Read extended attributes | ✔ at the file level |
|
Create files / write data | ✔ at the file level |
|
Create folders / append data | ✔ at the file level |
|
Delete subfolders and files | ✔ at the file level |
✔ at the file level |
Read permissions | ✔ at the file level |
|
Change | ✔ at the share level (if accessing a file share) |
Tip
At the file level, open the advanced permissions on the file or folder to see these permissions.
Note
Each host can associate with only one receive handler.
Configure the receive location
Note
Before completing the following procedure, you must have already added a one-way receive port. See How to Create a Receive Port.
In the BizTalk Server Administration console, expand BizTalk Server Administration, expand BizTalk Group, expand Applications, and then expand the application under you want to create a receive location.
In the left pane, click the Receive Ports node. Then in the right pane, right-click the receive port that is associated with an existing receive location or that you want to associate with a new receive location, and then click Properties.
In the left pane of the Receive Port Properties dialog box, select Receive Locations, and in the right pane double-click an existing receive location or click New to create a new receive location.
In the Receive Location Properties dialog box, in the Transport section, select FILE type from the drop-down list, and then click Configure to configure the transport properties for the receive location.
In the General tab, do the following:
Use this To do this Receive folder Required. Enter the path to a folder on the file system, the network share, or the Azure file share where the file receive handler reads files. You can enter the path directly in the Receive folder text box, or select it from the file system using the Browse button. When browsing for the folder, you can also create a new folder using Make New Folder.
If using an Azure File Storage share, enter\\yourfilestoragename.file.core.windows.net\yourfilesharename
.
Type: String
Note: Do not set the Receive folder property to a folder that uses the NT Distributed File System with a symbolic link. If you are using an NT Distributed File System, you can only use folders with straight network paths in File adapter receive locations.
For restrictions on this property, see Restrictions when configuring the File adapter.
Note: The URI for a send port or receive location cannot exceed 256 characters.File mask Required. Specify the mask for the files. This mask can contain the standard wildcard value "*".
Default value: *.xml
Type: String
For restrictions on this property, see Restrictions when configuring the File adapter.Public address Specify the public address of this location. BizTalk Server exposes this address to external partners.
If this property is not specified, the runtime engine replaces it as:
file://<Receive folder>/<File mask>
The value for this property requires an adapter prefix.
Type: String
Minimum length: 0
Maximum length: 256Retry count Specify the number of attempts to access the receive location on a network share if it is temporarily unavailable.
Default value: 5
Type: Long
Minimum value: 0
Maximum value: MAX_LONGRetry interval (min) Specify the retry interval time (in minutes) between attempts to access the receive location on the network share if it is temporarily unavailable.
Default value: 5 minutes
Type: Long
Minimum value: 0
Maximum value: MAX_LONGOn the Authentication tab, do the following:
Use this To do this Use these credentials when host does not have access to network share Required only when using a network share, or an Azure file share.
Default Value: False
Type: BooleanUser name If using a network share, enter the user name that has access to the share.
If using an Azure file storage share, enter the name of your storage account.
Type: String
Note: If multiple receive locations mapped to the same network share are configured with alternative credentials, then the same credentials must be used for all of the receive locations. Windows does not allow you to make multiple connections to a shared network server from the same computer if you attempt to use more than one set of credentials.Password If using a network share, enter the password for the account that has access to the network share.
If using an Azure file storage share, enter the storage account access key; which is listed in the Azure portal.
Type: StringIn the Batching tab, do the following:
Use this To do this Number of messages in a batch Specify the maximum number of messages to be submitted in a batch.
Default Value: 5
Type: Int
Minimum value: 1
Maximum value: 256Maximum batch size (in bytes) Specify the maximum total bytes for a batch.
Default Value: 102400
Type: Int
Minimum value: 1024
Maximum value: MAX_LONGThe File adapter will limit the batch to whichever value is reached first, maximum number of messages or maximum allowed bytes.
Select OK.
Enter the appropriate values in the Receive Location Properties dialog box to complete the configuration of the receive location, and click OK to save settings. For information about the Receive Locations Properties dialog box, see How to Create a Receive Location.
Configure the send port
In the BizTalk Server Administration console, create a new send port or double-click an existing send port to modify it. See How to Create a Send Port. Configure all of the send port options and specify FILE for the Type option in the Transport section of the General tab.
Select the Configure button next to Type.
In the General tab, do the following:
Use this To do this Destination Location Required. Enter the path to the location on the file system, public share, or the Azure file share to write the output messages. You can enter the path directly in the Destination Location, or select it from the file system using the Browse button. When browsing for the folder in the Browse For Folder dialog box, you can also create a new folder by clicking Make New Folder.
If using an Azure file storage share, enter\\yourfilestoragename.file.core.windows.net\yourfilesharename
.
Type: String
Note: The URI for a send port or receive location cannot exceed 256 characters.File name Specify the name of the file where the File send handler writes the message.
For restrictions on this property, including using macros in the file name, see Restrictions when configuring the File adapter.Copy mode Define the copy mode to use when writing a message to a file. Valid values are:
Append. The File send handler opens a file if it exists and appends a message to the end of the file. If the file does not exist, the File send handler creates a new file.
Overwrite. The File send handler opens a file if it exists and overwrites its content. If the file does not exist, the File send handler creates a new file.
Create new. If a file does not exist, the File send handler creates a new file and writes to it. If the file already exists, the File send handler reports an error and then follows common adapter retry logic for send ports. This is a default copy mode for the File send handler.Allow Cache on write Define whether to use file system caching when writing a message to a file.
Valid options are:
False Do not use the file system cache.
True Use the file system cache.
Default Value: False Important: Setting this property to True can increase the performance of the File adapter at the risk of potential data loss when there is a loss of power and not all data is written to disk.Use temporary file while writing Define whether to write the output file to a temporary file first and then rename the file once the write operation has completed. If this option is enabled then the temporary file will be created with the extension BTS-WIP.
Valid options are
True The File adapter creates a temporary file when writing to the target folder.
False The File adapter does not create a temporary file when writing to the target folder.
Default Value: False Note: This option is only available when the CopyMode property is set to a value of Create newOn the Authentication tab, do the following:
Use this To do this Use these credentials when host does not have access to network share Required only when using a network share, or an Azure file share.
Default Value: False
Type: BooleanUser name If using a network share, enter the user name that has access to the share.
If using an Azure file storage share, enter the name of your storage account.
Type: StringPassword If using a network share, enter the password for the account that has access to the network share.
If using an Azure file storage share, enter the storage account access key; which is listed in the Azure portal.
Type: StringSelect OK to save your settings.
Set the properties for a dynamic send port
A dynamic send port does not provide any transport configuration options in BizTalk Server Administration console because it is expected that these properties will be provided with the context properties associated with the message. These properties can be set in a custom pipeline or in an orchestration. To set message configuration properties in an orchestration, you can do the following:
Add a Construct Message shape to your orchestration.
Configure the Construct Message shape to construct a new message. (for example Message_2)
Add a Message Assignment shape to the Construct Message shape.
Add code to the Message Assignment shape to initialize the message that you constructed and to set the appropriate configuration properties for the message. The following code initializes a message named Message_2 that was constructed with a Construct Message shape and then sets two configuration properties for the message. In this scenario, Message_1 was originally received by the orchestration:
Message_2=Message_1; Message_2(FILE.CopyMode)= 0; //0=Append Message_2(FILE.AllowCacheOnWrite)= true; Message_2(FILE.UseTempFileOnWrite)= true;
Configure the receive or send handler
In the BizTalk Server Administration console, expand BizTalk Server Administration, expand BizTalk Group, expand Platform Settings, and then click Adapters.
In the expanded list of adapters, click FILE, in the right pane, right-click the receive or send handler that you want to configure. Select Properties.
In the Host Name list, select the host to run the handler.
Click OK.
More topics in this section
Create the File receive location or send port programmatically
File adapter property schema and properties
Restrictions when configuring the File adapter
See also
Ports for the Receive and Send Servers
Minimum Security User Rights