diff --git a/.vsts-pipelines/templates/build-steps.yml b/.vsts-pipelines/templates/build-steps.yml
index a5983be46b..dbc03620b5 100644
--- a/.vsts-pipelines/templates/build-steps.yml
+++ b/.vsts-pipelines/templates/build-steps.yml
@@ -3,7 +3,7 @@ phases:
parameters:
agentOs: Windows
beforeBuild:
- - powershell: "& ./tools/UpdateIISExpressCertificate.ps1; & ./tools/update_schema.ps1; Restart-Service w3svc"
+ - powershell: "& ./tools/UpdateIISExpressCertificate.ps1; & ./tools/update_schema.ps1"
displayName: Prepare repo
afterBuild:
- task: PublishBuildArtifacts@1
diff --git a/build/dependencies.props b/build/dependencies.props
index 1fec602126..da230474f9 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -47,6 +47,7 @@
4.6.0-preview1-26727-04
4.6.0-preview1-26727-04
4.6.0-preview1-26727-04
+ 4.6.0-preview1-26727-04
9.0.1
2.3.1
2.4.0
diff --git a/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS/IISDeployer.cs b/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS/IISDeployer.cs
index f677632485..583eb23d38 100644
--- a/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS/IISDeployer.cs
+++ b/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS/IISDeployer.cs
@@ -6,12 +6,14 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
+using System.ServiceProcess;
using System.Threading;
using System.Threading.Tasks;
using System.Xml.Linq;
using Microsoft.AspNetCore.Server.IntegrationTesting.Common;
using Microsoft.Extensions.Logging;
using Microsoft.Web.Administration;
+using TimeoutException = System.TimeoutException;
namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
{
@@ -164,6 +166,18 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
private async Task WaitUntilSiteStarted()
{
+ ServiceController serviceController = new ServiceController("w3svc");
+ Logger.LogInformation("W3SVC status " + serviceController.Status);
+
+ if (serviceController.Status != ServiceControllerStatus.Running &&
+ serviceController.Status != ServiceControllerStatus.StartPending)
+ {
+ Logger.LogInformation("Starting W3SVC");
+
+ serviceController.Start();
+ serviceController.WaitForStatus(ServiceControllerStatus.Running, _timeout);
+ }
+
var sw = Stopwatch.StartNew();
while (sw.Elapsed < _timeout)
diff --git a/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj b/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj
index 3678730c7e..d91d5c5a04 100644
--- a/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj
+++ b/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj
@@ -1,4 +1,4 @@
-
+
netstandard2.0
@@ -20,6 +20,7 @@
+