How Dependencies are Determined
Updated: June 30, 2009
Applies To: Windows 7, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP
The getDependencies operation collects data from two sources: the deployment object itself and the system information from the computer where the deployment object is located. If the -source argument specifies a Web server, getDependencies will use the Web Service Restriction List, global script maps, and IIS configuration to find entries of components that are being used.
Web Service Extensions
For each entry in the Web service extension restriction list, getDependencies determines whether ISAPI or CGI module file paths are present and enabled. In IIS 6.0, a module is identified as ISAPI if it ends in a .dll extension; otherwise, it is identified as CGI. In IIS 7, an application in the handlers section of the ApplicationHost.config file is considered a dependency if its modules attribute set to "IsapiModule" or "CGIModule" and if the module is listed in the IsapiCgiRestiction section. You can use the isapi and cgi settings to return only the corresponding dependencies.
Front Page Server Extensions
The getDependencies method will check if Front Page Server Extensions are in use.
If you specify the webServer60 or the webServer provider for the -source argument, the getDependencies method will not show FTP Server as an IIS 6.0 dependency because these providers do not include the FTP Server in their scope. Instead, you must use the metaKey provider, as the following example shows.
msdeploy -verb:getDependencies -source:metaKey=lm/msftpsvc -xml
Native and Managed Modules
On IIS 7, any native module that is in the globalModules list and that is not a known IIS or ASP.NET component is returned as dependency. Triggers are not returned for modules in the globalModules section. Managed types are detected only in IIS 7. Any managed type in the modules or handlers sections that does not represent a known ASP.NET or IIS component is returned as a dependency. To return dependency information only for native modules, you can specify the nativeModule setting as in the following example.
msdeploy -verb:getdependencies,nativemodule -source:webserver
|In IIS 7, any module that does not put an entry in the globalModules section of ApplicationHost.config will not be detected as a dependency. This includes most IIS-related out-of-band releases. However, out-of-band releases like WebDAV and Bitrate Throttling that put an entry in the globalModules list will be detected as either native or managed modules.|