Search code examples
iis-7msbuildapplication-settingsmsbuildcommunitytasks

Msbuild WebDirectorySetting doesn't set enabledProtocols setting


I trying create iis7 web application by msbuild community tasks and set property "Enabled Protocols" to "http,net.tcp", but this property doesn't set (I am checking in inetmgr):

<Project DefaultTargets="CreateSite" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

  <PropertyGroup>
    <VirtualDirectoryName>DCSS_dev_s7</VirtualDirectoryName>
    <VirtualDirectoryPhysicalPath>$(MSBuildProjectDirectory)\DCSS_dev_s7</VirtualDirectoryPhysicalPath>
  </PropertyGroup>

  <Target Name="CreateSite">
    <WebDirectoryDelete VirtualDirectoryName="$(VirtualDirectoryName)" ContinueOnError="true" />
    <WebDirectoryCreate VirtualDirectoryName="$(VirtualDirectoryName)" VirtualDirectoryPhysicalPath="$(VirtualDirectoryPhysicalPath)" />
    <WebDirectorySetting VirtualDirectoryName="$(VirtualDirectoryName)" SettingName="enabledProtocols" SettingValue="http,net.tcp" />
  </Target>
</Project>

How I can set this property by msbuild?


Solution

  • enabledProtocols isn't part of the IIS global properties so WebDirectorySetting ignores it.

    Instead use MSBuild Extension Pack IIS tasks which are more updated than MSBuildCommunityTasks.

    <MSBuild.ExtensionPack.Web.Iis7Binding 
        TaskAction="Add" 
        Name="NewSite" 
        BindingInformation="192.168.1.101:8080:stackoverflow.com" 
        BindingProtocol="http"/>