# <mkiisdir>

[This is preliminary documentation and subject to change.]

Creates or modifies a virtual directory of a web site hosted on Internet Information Server.

If the virtual directory does not exist it is created, and if it already exists it is modified. Only the IIS-properties specified will be set. If set by other means (e.g. the Management Console), the unspecified properties retain their current value, otherwise they are inherited from the parent.

For a list of optional parameters see IIsWebVirtualDir.

More information on metabase parameters is available here.

### Parameters

Attribute | Type | Description | Required
--- | --- | --- | ---
dirpath | directory | The file system path. | True
accessexecute | bool | Indicates whether the file or the contents of the folder may be executed, regardless of file type. The default is false. | False
accessnoremoteexecute | bool | Indicates whether remote requests to execute applications are denied; only requests from the same computer as the IIS server succeed if `accessexecute` is set to true. You cannot set `accessnoremoteexecute` to false to enable remote requests, and set `accessexecute` to false to disable local requests. The default is false. | False
accessnoremoteread | bool | Indicates whether remote requests to view files are denied; only requests from the same computer as the IIS server succeed if `accessexecute` is set to true. You cannot set `accessnoremoteread` to false to enable remote requests, and set `accessread` to false to disable local requests. The default is false. | False
accessnoremotescript | bool | A value of true indicates that remote requests to view dynamic content are denied; only requests from the same computer as the IIS server succeed if the AccessScript property is set to true. You cannot set AccessNoRemoteScript to false to enable remote requests, and set AccessScript to false to disable local requests. | False
accessnoremotewrite | bool | indicates that remote requests to create or change files are denied; only requests from the same computer as the IIS server succeed if the AccessWrite property is set to true. You cannot set AccessNoRemoteWrite to false to enable remote requests, and set AccessWrite to false to disable local requests. | False
accessread | bool | Indicates whether the file or the contents of the folder may be read. The default is true. | False
accessscript | bool | Indicates whether the file or the contents of the folder may be executed if they are script files or static content. The default is true. | False
accesssource | bool | Indicates whether users are allowed to access source code if either Read or Write permissions are set. The default is false. | False
accessssl | bool | Indicates whether file access requires SSL file permission processing, with or without a client certificate. The default is false. | False
accessssl128 | bool | Indicates whether file access requires SSL file permission processing with a minimum key size of 128 bits, with or without a client certificate. The default is false. | False
accesssslmapcert | bool | Indicates whether SSL file permission processing maps a client certificate to a Microsoft Windows ® operating system user-account. `accesssslnegotiatecert` must also be set to true for the mapping to occur. The default is false. | False
accesssslnegotiatecert | bool | Indicates whether SSL file access processing requests a certificate from the client. The default is false. | False
accesssslrequirecert | bool | Indicates whether SSL file access processing requests a certificate from the client. If the client provides no certificate, the connection is closed. `accesssslnegotiatecert` must also be set to true when using `accesssslrequirecert`. The default is false. | False
accesswrite | bool | Indicates whether users are allowed to upload files and their associated properties to the enabled directory on your server or to change content in a Write-enabled file. The default is false. | False
anonymouspasswordsync | bool | Indicates whether IIS should handle the user password for anonymous users attempting to access resources. The default is false. | False
appallowclientdebug | bool | Specifies whether ASP client-side debugging is enabled. The default is false. | False
appallowdebugging | bool | Specifies whether ASP debugging is enabled on the server. The default is false. | False
appcreate | AppType | Specifies what type of application to create for this virtual directory. The default is `Pooled`. | False
appfriendlyname | string | The user-friendly name of the package or application. | False
apppoolid | string | Specifies the application pool where the application is routed (IIS 6.0 or higher). | False
aspallowsessionstate | bool | Enables session state persistence for the ASP application. The default is true. | False
aspbufferingon | bool | Specifies whether output from an ASP application will be buffered. If true, all output from the application is collected in the buffer before the buffer is flushed to the client. With buffering on, the ASP application has to completely process the ASP script before the client receives any output. The default is true. | False
aspenableapplicationrestart | bool | Determines whether an ASP application can be automatically restarted. When changes are made to Global.asa or metabase properties that affect an application, the application will not restart unless the `aspenableapplicationrestart` property is set to false. The default is true. | False
aspenableasphtmlfallback | bool | Controls the behavior of ASP when a new request is to be rejected due to a full request queue. If true, an .htm file with a similar name as the requested .asp file, will be sent instead of the .asp file. The naming convention for the .htm file is the name of the .asp file with _asp appended. The default is false. | False
aspenablechunkedencoding | bool | Specifies whether HTTP 1.1 chunked transfer encoding is enabled for the World Wide Web Publishing Service (WWW service). The default is false. | False
aspenableparentpaths | bool | Specifies whether an ASP page allows paths relative to the current directory. The default is true. | False
aspenabletypelibcache | bool | Specifies whether type libraries are cached on the server. The default is true. | False
asperrorstontlog | bool | Specifies which ASP errors are written to the Windows event log. | False
aspexceptioncatchenable | bool | Specifies whether ASP pages trap exceptions thrown by components. If set to false, the Microsoft Script Debugger tool does not catch exceptions sent by the component that you are debugging. The default is true. | False
asplogerrorrequests | bool | Controls whether the Web server writes ASP errors to the application section of the Windows event log. The default is true. | False
aspscripterrormessage | string |  | False
aspscripterrorsenttobrowser | bool | Specifies whether the Web server writes debugging specifics (file name, error, line number, description) to the client browser, in addition to logging them to the Windows Event Log. The default is true. | False
aspthreadgateenabled | bool | Indicates whether IIS thread gating is enabled (only applies to IIS 4 and 5). The default is false. | False
asptrackthreadingmodel | bool | Specifies whether IIS checks the threading model of any components that your application creates. The default is false. | False
authanonymous | bool | Specifies Anonymous authentication as one of the possible authentication schemes returned to clients as being available. The default is true. | False
authbasic | bool | Specifies Basic authentication as one of the possible authentication schemes returned to clients as being available. The default is false. | False
authntlm | bool | Specifies Integrated Windows authentication as one of the possible authentication schemes returned to clients as being available. The default is false. | False
authpersistsinglerequest | bool | Specifies that authentication persists only for a single request on a connection. IIS resets the authentication at the end of each request, and forces re-authentication on the next request of the session. | False
authpersistsinglerequestalwaysifproxy | bool | Specifies whether authentication is valid for a single request if by proxy. IIS will reset the authentication at the end of the request and force re-authentication on the next request if the current authenticated request is by proxy of any type. Applies to IIS 5.0 and 5.1. The default is false. | False
authpersistsinglerequestifproxy | bool | Specifies authentication will persist only across single requests on a connection if the connection is by proxy. Applies to IIS 5.0 and 5.1. The default is false | False
cachecontrolnocache | bool | Specifies whether the HTTP 1.1 directive to prevent caching of content should be sent to clients. The default is false. | False
cacheisapi | bool | Indicates whether ISAPI extensions are cached in memory after first use. The default is true. | False
contentindexed | bool | Specifies whether the installed content indexer should index content under this directory tree. The default is true. | False
cpuappenabled | bool | Specifies whether process accounting and throttling should be performed for ISAPI extensions and ASP applications. The default is true. | False
cpucgienabled | bool | Indicates whether IIS should perform process accounting for CGI applications. The default is true. | False
createcgiwithnewconsole | bool | Indicates whether a CGI application runs in its own console. The default is false. | False
createprocessasuser | bool | Specifies whether a CGI process is created in the system context or in the context of the requesting user. The default is true. | False
defaultdoc | string | One or more file names of default documents that will be returned to the client if no file name is included in the client's request. | False
dirbrowseshowdate | bool | Specifies whether date information is displayed when browsing directories. The default is true. | False
dirbrowseshowextension | bool | Specifies whether file extensions are displayed when browsing directories. The default is true. | False
dirbrowseshowlongdate | bool | Specifies whether date information is displayed in extended format when displaying directories. The default is true. | False
dirbrowseshowsize | bool | Specifies whether file size information is displayed when displaying directories. The default is true. | False
dirbrowseshowtime | bool | Specifies whether file creation time is displayed when browsing directories. The default is true. | False
dontlog | bool | Specifies whether client requests are written to the IIS log files. The default is false. | False
enabledefaultdoc | bool | When set to true, the default document (specified by the DefaultDoc property) for a directory is loaded when the directory is browsed. | False
enabledirbrowsing | bool | Specifies whether directory browsing is enabled. The default is false. | False
enabledocfooter | bool | Enables or disables custom footers. The default is false. | False
enablereversedns | bool | Enables or disables reverse Domain Name Server (DNS) lookups for the World Wide Web Publishing Service (WWW service). The default is false. | False
ssiexecdisable | bool | Specifies whether server-side include (SSI) #exec directives are disabled under this path. The default is false. | False
uncauthenticationpassthrough | bool |  | False
uncpassword | string | Specifies the encrypted password used to gain access to UNC (Universal Naming Convention) virtual roots. | False
uncusername | string | Specifies the user name for Universal Naming Convention (UNC) virtual roots. | False
vdirname | string | Name of the IIS virtual directory. | True
failonerror | bool | Determines if task failure stops the build, or is just reported. The default is true. | False
if | bool | If true then the task will be executed; otherwise, skipped. The default is true. | False
iisserver | string | The IIS server, which can be specified using the format `[host]:[port]`. The default is `localhost:80`. | False
unless | bool | Opposite of `if`. If false then the task will be executed; otherwise, skipped. The default is false. | False
verbose | bool | Determines whether the task should report detailed build log messages. The default is false. | False
website | string | The website on the IIS server. | False

### Examples

- Create a virtual directory named `Temp` pointing to `c:\temp` on the local machine.

      <mkiisdir dirpath="c:\temp" vdirname="Temp" />

- Create a virtual directory named `Temp` pointing to `c:\temp` on machine `Staging`.

      <mkiisdir iisserver="Staging" dirpath="c:\temp" vdirname="Temp" />

- Configure the home directory of for http://svc.here.dev/ to point to D:\Develop\Here and require authentication

      <mkiisdir iisserver="svc.here.dev" dirpath="D:\Develop\Here" vdirname="/" authanonymous="false"/>

- Create a virtual directory named `WebServices/Dev` pointing to `c:\MyProject\dev` on the web site running on port `81` of machine `MyHost`.

      <mkiisdir iisserver="MyHost:81" dirpath="c:\MyProject\dev" vdirname="WebServices/Dev" />

  Note that if `WebServices` is neither an existing virtual directory nor an existing physical subdirectory of the web root, your IIS Management Console will get confused. Even though `http://MyHost:81/WebServices/Dev/theService.asmx` may be a perfectly working webservice, the Management Console will not show it.

### Requirements

Assembly: NAnt.Contrib.Tasks (0.93.5002.0)