IIS7 API does not seem to be supported

We’ve got a Windows 2008 R2 web server running iis7, been releasing to it for like 3-4 months with Octopus. Today for the first time the tentacle deploy starting failing, and a new message that’s never appeared before started showing up (i.e. deployments to the same tentacle in the past didn’t show this information message):

2011-12-18 21:04:57 DEBUG IIS7 API does not seem to be supported - falling back to Active Directory mode for IIS 6 compatability.

This is then followed by the actual failure logs (see below). So, why am I suddenly seeing a message that IIS7 API not supported on a machine that it apparently has worked on in the past (as recently as 3 days ago)?

Failure log items that follow the IIS7 API message:

2011-12-18 21:04:57 ERROR Error while executing job: Unknown error (0x80005000)
System.Runtime.InteropServices.COMException (0x80005000): Unknown error (0x80005000)
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_IsContainer()
at System.DirectoryServices.DirectoryEntries.ChildEnumerator…ctor(DirectoryEntry container)
at Octopus.Tentacle.Integration.Iis.InternetInformationServer.OverwriteHomeDirectoryUsingIis6ActiveDirectory(String iisWebSiteName, String path) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Integration\Iis\InternetInformationServer.cs:line 72
at Octopus.Tentacle.Integration.Iis.InternetInformationServer.OverwriteHomeDirectory(String iisWebSiteName, String path) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Integration\Iis\InternetInformationServer.cs:line 42
at Octopus.Tentacle.Conventions.IisWebSite.AfterDeployment(ConventionContext context) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Conventions\IisWebSite.cs:line 42
at Octopus.Tentacle.Jobs.Deployment.DeployPackageJobExecutor.Execute(DeployPackageJob job) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Jobs\Deployment\DeployPackageJobExecutor.cs:line 57
at Octopus.Tentacle.Jobs.JobQueue.RunDeploymentsOnBackgroundThread(Object ignored) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Jobs\JobQueue.cs:line 85

2011-12-18 21:04:58 ERROR System.Exception: Deployment on the tentacle failed: System.Runtime.InteropServices.COMException (0x80005000): Unknown error (0x80005000)
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_IsContainer()
at System.DirectoryServices.DirectoryEntries.ChildEnumerator…ctor(DirectoryEntry container)
at Octopus.Tentacle.Integration.Iis.InternetInformationServer.OverwriteHomeDirectoryUsingIis6ActiveDirectory(String iisWebSiteName, String path) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Integration\Iis\InternetInformationServer.cs:line 72
at Octopus.Tentacle.Integration.Iis.InternetInformationServer.OverwriteHomeDirectory(String iisWebSiteName, String path) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Integration\Iis\InternetInformationServer.cs:line 42
at Octopus.Tentacle.Conventions.IisWebSite.AfterDeployment(ConventionContext context) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Conventions\IisWebSite.cs:line 42
at Octopus.Tentacle.Jobs.Deployment.DeployPackageJobExecutor.Execute(DeployPackageJob job) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Jobs\Deployment\DeployPackageJobExecutor.cs:line 57
at Octopus.Tentacle.Jobs.JobQueue.RunDeploymentsOnBackgroundThread(Object ignored) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Jobs\JobQueue.cs:line 85
at Octopus.Server.Tasks.Deploy.PackageDeployer.PollUntilFinished(IJobService service, JobTicket ticket) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Server\Tasks\Deploy\PackageDeployer.cs:line 54
at Octopus.Server.Proxies.ClientBroker1.CallOneWay(Uri endpoint, Action1 callback) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Server\Proxies\ClientBroker.cs:line 59
2011-12-18 21:04:58 ERROR System.Exception: Deployment on the tentacle failed: System.Runtime.InteropServices.COMException (0x80005000): Unknown error (0x80005000)
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_IsContainer()
at System.DirectoryServices.DirectoryEntries.ChildEnumerator…ctor(DirectoryEntry container)
at Octopus.Tentacle.Integration.Iis.InternetInformationServer.OverwriteHomeDirectoryUsingIis6ActiveDirectory(String iisWebSiteName, String path) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Integration\Iis\InternetInformationServer.cs:line 72
at Octopus.Tentacle.Integration.Iis.InternetInformationServer.OverwriteHomeDirectory(String iisWebSiteName, String path) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Integration\Iis\InternetInformationServer.cs:line 42
at Octopus.Tentacle.Conventions.IisWebSite.AfterDeployment(ConventionContext context) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Conventions\IisWebSite.cs:line 42
at Octopus.Tentacle.Jobs.Deployment.DeployPackageJobExecutor.Execute(DeployPackageJob job) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Jobs\Deployment\DeployPackageJobExecutor.cs:line 57
at Octopus.Tentacle.Jobs.JobQueue.RunDeploymentsOnBackgroundThread(Object ignored) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Tentacle\Jobs\JobQueue.cs:line 85
at Octopus.Server.Tasks.Deploy.PackageDeployer.PollUntilFinished(IJobService service, JobTicket ticket) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Server\Tasks\Deploy\PackageDeployer.cs:line 54
at Octopus.Server.Proxies.ClientBroker1.CallOneWay(Uri endpoint, Action1 callback) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Server\Proxies\ClientBroker.cs:line 67
at Octopus.Server.Tasks.Deploy.DeployTaskExecutor.DeployPackagesToEnvironment(Deployment deployment, Project project, Dictionary`2 packageCache) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Server\Tasks\Deploy\DeployTaskExecutor.cs:line 104
at Octopus.Server.Tasks.TaskQueue.<>c__DisplayClass3.b__0(Object ) in d:\TeamCity\Server\buildAgent\work\508f7e6149799a54\source\Octopus.Server\Tasks\TaskQueue.cs:line 89

Hi Chad,

Sorry for not getting back to you sooner, this conversation was marked as spam for some reason.

If you weren’t able to get to the bottom of this, can you please try upgrading to the latest Octopus/Tentacle release, and checking to see if the behaviour is the same? The latest release changed the way we work with IIS, and it should log whatever reason was preventing it from finding the IIS 7 APIs.

Paul