diff --git a/eng/ProjectReferences.props b/eng/ProjectReferences.props
index 448b48db82..05a7e96c56 100644
--- a/eng/ProjectReferences.props
+++ b/eng/ProjectReferences.props
@@ -37,7 +37,7 @@
-
+
diff --git a/src/Servers/IIS/.gitignore b/src/Servers/IIS/.gitignore
index dc2b157fe0..f72b4575d1 100644
--- a/src/Servers/IIS/.gitignore
+++ b/src/Servers/IIS/.gitignore
@@ -45,17 +45,12 @@ x64/
*.pdb
*.lib
*.idb
-src/*/AspNetCore/aspnetcoremodule.h
-src/*/AspNetCore/aspnetcore_msg.h
-src/*/AspNetCore/aspnetcore_msg.rc
-src/*/*/version.h
-src/*/RequestHandler/version.h
-src/*/CommonLib/aspnetcore_msg.h
-src/*/CommonLib/aspnetcore_msg.rc
+AspNetCoreModuleV1/AspNetCore/aspnetcoremodule.h
+AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.h
+AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.rc
+AspNetCoreModuleV1/AspNetCore/version.h
test/*/Debug
test/*/Release
-test/gtest-1.8.0/msvc/Debug
-test/gtest-1.8.0/msvc/Release
.build
*.VC.*db
global.json
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/AspNetCore.vcxproj b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/AspNetCore.vcxproj
similarity index 99%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/AspNetCore.vcxproj
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/AspNetCore.vcxproj
index e70df818f0..0231edecb0 100644
--- a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/AspNetCore.vcxproj
+++ b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/AspNetCore.vcxproj
@@ -1,6 +1,6 @@

-
+
Debug
@@ -268,7 +268,7 @@
{4787a64f-9a3e-4867-a55a-70cb4b2b2ffe}
-
+
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/application.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/application.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/application.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/application.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/applicationmanager.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/applicationmanager.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/applicationmanager.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/applicationmanager.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/aspnetcoreconfig.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/aspnetcoreconfig.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/aspnetcoreconfig.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/aspnetcoreconfig.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/debugutil.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/debugutil.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/debugutil.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/debugutil.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/environmentvariablehash.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/environmentvariablehash.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/environmentvariablehash.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/environmentvariablehash.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/filewatcher.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/filewatcher.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/filewatcher.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/filewatcher.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/forwarderconnection.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/forwarderconnection.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/forwarderconnection.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/forwarderconnection.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/forwardinghandler.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/forwardinghandler.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/forwardinghandler.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/forwardinghandler.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/path.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/path.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/path.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/path.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/processmanager.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/processmanager.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/processmanager.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/processmanager.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/protocolconfig.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/protocolconfig.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/protocolconfig.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/protocolconfig.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/proxymodule.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/proxymodule.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/proxymodule.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/proxymodule.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/resource.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/resource.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/resource.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/resource.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/responseheaderhash.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/responseheaderhash.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/responseheaderhash.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/responseheaderhash.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/serverprocess.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/serverprocess.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/serverprocess.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/serverprocess.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/sttimer.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/sttimer.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/sttimer.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/sttimer.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/websockethandler.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/websockethandler.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/websockethandler.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/websockethandler.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/winhttphelper.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/winhttphelper.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Inc/winhttphelper.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Inc/winhttphelper.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Source.def b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Source.def
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/Source.def
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/Source.def
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.mc b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.mc
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.mc
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.mc
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.rc b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.rc
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.rc
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/aspnetcore_msg.rc
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/aspnetcore_schema.xml b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/aspnetcore_schema.xml
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/aspnetcore_schema.xml
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/aspnetcore_schema.xml
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/aspnetcoremodule.rc b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/aspnetcoremodule.rc
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/aspnetcoremodule.rc
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/aspnetcoremodule.rc
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/resource.h b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/resource.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/resource.h
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/resource.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/application.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/application.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/application.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/application.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/applicationmanager.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/applicationmanager.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/applicationmanager.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/applicationmanager.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/aspnetcoreconfig.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/aspnetcoreconfig.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/aspnetcoreconfig.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/aspnetcoreconfig.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/filewatcher.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/filewatcher.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/filewatcher.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/filewatcher.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/forwarderconnection.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/forwarderconnection.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/forwarderconnection.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/forwarderconnection.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/forwardinghandler.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/forwardinghandler.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/forwardinghandler.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/forwardinghandler.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/main.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/main.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/main.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/main.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/path.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/path.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/path.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/path.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/precomp.hxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/precomp.hxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/precomp.hxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/precomp.hxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/processmanager.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/processmanager.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/processmanager.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/processmanager.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/protocolconfig.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/protocolconfig.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/protocolconfig.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/protocolconfig.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/proxymodule.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/proxymodule.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/proxymodule.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/proxymodule.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/responseheaderhash.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/responseheaderhash.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/responseheaderhash.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/responseheaderhash.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/serverprocess.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/serverprocess.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/serverprocess.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/serverprocess.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/websockethandler.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/websockethandler.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/websockethandler.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/websockethandler.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/winhttphelper.cxx b/src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/winhttphelper.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/AspNetCore/src/winhttphelper.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/AspNetCore/src/winhttphelper.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/IISLib.vcxproj b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/IISLib.vcxproj
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/IISLib.vcxproj
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/IISLib.vcxproj
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/acache.cxx b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/acache.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/acache.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/acache.cxx
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/acache.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/acache.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/acache.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/acache.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/ahutil.cpp b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/ahutil.cpp
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/ahutil.cpp
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/ahutil.cpp
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/ahutil.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/ahutil.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/ahutil.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/ahutil.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/base64.cpp b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/base64.cpp
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/base64.cpp
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/base64.cpp
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/base64.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/base64.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/base64.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/base64.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/buffer.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/buffer.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/buffer.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/buffer.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/datetime.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/datetime.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/datetime.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/datetime.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/dbgutil.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/dbgutil.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/dbgutil.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/dbgutil.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/hashfn.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/hashfn.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/hashfn.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/hashfn.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/hashtable.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/hashtable.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/hashtable.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/hashtable.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/listentry.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/listentry.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/listentry.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/listentry.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/macros.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/macros.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/macros.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/macros.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/multisz.cpp b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/multisz.cpp
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/multisz.cpp
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/multisz.cpp
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/multisz.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/multisz.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/multisz.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/multisz.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/multisza.cpp b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/multisza.cpp
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/multisza.cpp
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/multisza.cpp
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/multisza.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/multisza.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/multisza.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/multisza.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/ntassert.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/ntassert.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/ntassert.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/ntassert.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/percpu.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/percpu.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/percpu.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/percpu.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/precomp.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/precomp.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/precomp.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/precomp.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/prime.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/prime.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/prime.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/prime.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/pudebug.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/pudebug.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/pudebug.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/pudebug.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/reftrace.c b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/reftrace.c
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/reftrace.c
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/reftrace.c
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/reftrace.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/reftrace.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/reftrace.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/reftrace.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/rwlock.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/rwlock.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/rwlock.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/rwlock.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/stringa.cpp b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/stringa.cpp
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/stringa.cpp
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/stringa.cpp
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/stringa.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/stringa.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/stringa.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/stringa.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/stringu.cpp b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/stringu.cpp
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/stringu.cpp
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/stringu.cpp
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/stringu.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/stringu.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/stringu.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/stringu.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/tracelog.c b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/tracelog.c
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/tracelog.c
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/tracelog.c
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/tracelog.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/tracelog.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/tracelog.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/tracelog.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/treehash.h b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/treehash.h
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/treehash.h
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/treehash.h
diff --git a/src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/util.cxx b/src/Servers/IIS/AspNetCoreModuleV1/IISLib/util.cxx
similarity index 100%
rename from src/Servers/IIS/src/AspNetCoreModuleV1/IISLib/util.cxx
rename to src/Servers/IIS/AspNetCoreModuleV1/IISLib/util.cxx
diff --git a/src/Servers/IIS/LICENSE.txt b/src/Servers/IIS/AspNetCoreModuleV1/LICENSE.txt
similarity index 100%
rename from src/Servers/IIS/LICENSE.txt
rename to src/Servers/IIS/AspNetCoreModuleV1/LICENSE.txt
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.AspNetCoreModuleV1/Directory.Build.targets b/src/Servers/IIS/AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1/Directory.Build.targets
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.AspNetCoreModuleV1/Directory.Build.targets
rename to src/Servers/IIS/AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1/Directory.Build.targets
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModule.props b/src/Servers/IIS/AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModule.props
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModule.props
rename to src/Servers/IIS/AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModule.props
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1.pkgproj b/src/Servers/IIS/AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1.pkgproj
similarity index 59%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1.pkgproj
rename to src/Servers/IIS/AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1.pkgproj
index 3a5ad7aba9..29f79f80b0 100644
--- a/src/Servers/IIS/src/Microsoft.AspNetCore.AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1.pkgproj
+++ b/src/Servers/IIS/AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1.pkgproj
@@ -13,11 +13,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.AspNetCoreModuleV1/lib/netcoreapp2.1/_._ b/src/Servers/IIS/AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1/lib/netcoreapp2.1/_._
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.AspNetCoreModuleV1/lib/netcoreapp2.1/_._
rename to src/Servers/IIS/AspNetCoreModuleV1/Microsoft.AspNetCore.AspNetCoreModuleV1/lib/netcoreapp2.1/_._
diff --git a/src/Servers/IIS/IISIntegration.sln b/src/Servers/IIS/IISIntegration.sln
index 85a5d7ebcd..4d7eb70c31 100644
--- a/src/Servers/IIS/IISIntegration.sln
+++ b/src/Servers/IIS/IISIntegration.sln
@@ -3,37 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2036
MinimumVisualStudioVersion = 15.0.26730.03
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{04B1EDB6-E967-4D25-89B9-E6F8304038CD}"
- ProjectSection(SolutionItems) = preProject
- src\Directory.Build.props = src\Directory.Build.props
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{0EF45656-B25D-40D8-959C-726EAF185E60}"
- ProjectSection(SolutionItems) = preProject
- .editorconfig = .editorconfig
- Directory.Build.props = Directory.Build.props
- Directory.Build.targets = Directory.Build.targets
- NuGet.Config = NuGet.Config
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{EF30B533-D715-421A-92B7-92FEF460AC9C}"
- ProjectSection(SolutionItems) = preProject
- test\Directory.Build.props = test\Directory.Build.props
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{C74B8F36-FD2F-45C9-9B8A-00E7CF0126A9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IISSample", "samples\IISSample\IISSample.csproj", "{E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration", "src\Microsoft.AspNetCore.Server.IISIntegration\Microsoft.AspNetCore.Server.IISIntegration.csproj", "{8B3446E8-E6A8-4591-AA63-A95837C6E97C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration.Tests", "test\Microsoft.AspNetCore.Server.IISIntegration.Tests\Microsoft.AspNetCore.Server.IISIntegration.Tests.csproj", "{4106DB10-E09F-480E-9CE6-B39235512EE6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OutOfProcessWebSite", "test\testassets\OutOfProcessWebSite\OutOfProcessWebSite.csproj", "{F54715C3-88D8-49E3-A291-C13570FE81FC}"
- ProjectSection(ProjectDependencies) = postProject
- {439824F9-1455-4CC4-BD79-B44FA0A16552} = {439824F9-1455-4CC4-BD79-B44FA0A16552}
- EndProjectSection
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{7E80C58E-9CC8-450C-8A8D-94FC76428150}"
ProjectSection(SolutionItems) = preProject
build\applicationhost.config = build\applicationhost.config
@@ -44,15 +13,38 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{7E80C58E
build\testsite.props = build\testsite.props
EndProjectSection
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IISIntegration.FunctionalTests", "test\IISIntegration.FunctionalTests\IISIntegration.FunctionalTests.csproj", "{4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AspNetCoreModuleV1", "AspNetCoreModuleV1", "{CB89CE6B-FE5B-42EC-A1AA-4CE48B58C824}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "testassets", "testassets", "{744ACDC6-F6A0-4FF9-9421-F25C5F2DC520}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AspNetCore", "AspNetCoreModuleV1\AspNetCore\AspNetCore.vcxproj", "{439824F9-1455-4CC4-BD79-B44FA0A16552}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AspNetCoreModuleV1", "AspNetCoreModuleV1", "{16E521CE-77F1-4B1C-A183-520A41C4F372}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IISLib", "AspNetCoreModuleV1\IISLib\IISLib.vcxproj", "{4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IISLib", "src\AspNetCoreModuleV1\IISLib\IISLib.vcxproj", "{4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IISIntegration", "IISIntegration", "{DFD791BE-650D-4D28-B433-0F7F3396E504}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AspNetCore", "src\AspNetCoreModuleV1\AspNetCore\AspNetCore.vcxproj", "{439824F9-1455-4CC4-BD79-B44FA0A16552}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{07A39A11-7E87-48E5-8BFB-CC525DC3E338}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2130E0FD-A21F-47E9-8207-06B6A122CB4A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{996147E5-A4D4-40B8-A5B9-18E1B0F6A432}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration", "IISIntegration\src\Microsoft.AspNetCore.Server.IISIntegration.csproj", "{0C044E38-3640-4F91-8A62-3F54DC7E7F34}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IISSample", "IISIntegration\samples\IISSample\IISSample.csproj", "{CDE1208E-198D-4E07-80C8-AB1E0B662A60}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IISIntegration.FunctionalTests", "IISIntegration\test\FunctionalTests\IISIntegration.FunctionalTests.csproj", "{7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration.Tests", "IISIntegration\test\Tests\Microsoft.AspNetCore.Server.IISIntegration.Tests.csproj", "{7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "testassets", "testassets", "{E27133AD-4B60-4EC9-9DE9-56762ADA16D7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OutOfProcessWebSite", "IISIntegration\test\testassets\OutOfProcessWebSite\OutOfProcessWebSite.csproj", "{3BFEF549-2F58-4449-A9FF-DAB1206C07BC}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{80BFE548-9DFF-49C4-94A7-1754C3D4C339}"
+ ProjectSection(SolutionItems) = preProject
+ tools\SetupTestEnvironment.ps1 = tools\SetupTestEnvironment.ps1
+ tools\update_schema.ps1 = tools\update_schema.ps1
+ tools\UpdateIISExpressCertificate.ps1 = tools\UpdateIISExpressCertificate.ps1
+ EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -64,74 +56,6 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}.Debug|x64.Build.0 = Debug|Any CPU
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}.Debug|x86.Build.0 = Debug|Any CPU
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}.Release|Any CPU.Build.0 = Release|Any CPU
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}.Release|x64.ActiveCfg = Release|Any CPU
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}.Release|x64.Build.0 = Release|Any CPU
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}.Release|x86.ActiveCfg = Release|Any CPU
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64}.Release|x86.Build.0 = Release|Any CPU
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Debug|x64.ActiveCfg = Debug|Any CPU
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Debug|x64.Build.0 = Debug|Any CPU
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Debug|x86.Build.0 = Debug|Any CPU
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Release|Any CPU.Build.0 = Release|Any CPU
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Release|x64.ActiveCfg = Release|Any CPU
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Release|x64.Build.0 = Release|Any CPU
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Release|x86.ActiveCfg = Release|Any CPU
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Release|x86.Build.0 = Release|Any CPU
- {4106DB10-E09F-480E-9CE6-B39235512EE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4106DB10-E09F-480E-9CE6-B39235512EE6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4106DB10-E09F-480E-9CE6-B39235512EE6}.Debug|x64.ActiveCfg = Debug|Any CPU
- {4106DB10-E09F-480E-9CE6-B39235512EE6}.Debug|x64.Build.0 = Debug|Any CPU
- {4106DB10-E09F-480E-9CE6-B39235512EE6}.Debug|x86.ActiveCfg = Debug|Any CPU
- {4106DB10-E09F-480E-9CE6-B39235512EE6}.Debug|x86.Build.0 = Debug|Any CPU
- {4106DB10-E09F-480E-9CE6-B39235512EE6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4106DB10-E09F-480E-9CE6-B39235512EE6}.Release|Any CPU.Build.0 = Release|Any CPU
- {4106DB10-E09F-480E-9CE6-B39235512EE6}.Release|x64.ActiveCfg = Release|Any CPU
- {4106DB10-E09F-480E-9CE6-B39235512EE6}.Release|x64.Build.0 = Release|Any CPU
- {4106DB10-E09F-480E-9CE6-B39235512EE6}.Release|x86.ActiveCfg = Release|Any CPU
- {4106DB10-E09F-480E-9CE6-B39235512EE6}.Release|x86.Build.0 = Release|Any CPU
- {F54715C3-88D8-49E3-A291-C13570FE81FC}.Debug|Any CPU.ActiveCfg = Debug|x86
- {F54715C3-88D8-49E3-A291-C13570FE81FC}.Debug|x64.ActiveCfg = Debug|x64
- {F54715C3-88D8-49E3-A291-C13570FE81FC}.Debug|x64.Build.0 = Debug|x64
- {F54715C3-88D8-49E3-A291-C13570FE81FC}.Debug|x86.ActiveCfg = Debug|x86
- {F54715C3-88D8-49E3-A291-C13570FE81FC}.Debug|x86.Build.0 = Debug|x86
- {F54715C3-88D8-49E3-A291-C13570FE81FC}.Release|Any CPU.ActiveCfg = Release|x86
- {F54715C3-88D8-49E3-A291-C13570FE81FC}.Release|x64.ActiveCfg = Release|x64
- {F54715C3-88D8-49E3-A291-C13570FE81FC}.Release|x64.Build.0 = Release|x64
- {F54715C3-88D8-49E3-A291-C13570FE81FC}.Release|x86.ActiveCfg = Release|x86
- {F54715C3-88D8-49E3-A291-C13570FE81FC}.Release|x86.Build.0 = Release|x86
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Debug|x64.ActiveCfg = Debug|Any CPU
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Debug|x64.Build.0 = Debug|Any CPU
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Debug|x86.ActiveCfg = Debug|Any CPU
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Debug|x86.Build.0 = Debug|Any CPU
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Release|Any CPU.Build.0 = Release|Any CPU
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Release|x64.ActiveCfg = Release|Any CPU
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Release|x64.Build.0 = Release|Any CPU
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Release|x86.ActiveCfg = Release|Any CPU
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Release|x86.Build.0 = Release|Any CPU
- {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Debug|Any CPU.ActiveCfg = Debug|Win32
- {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Debug|x64.ActiveCfg = Debug|x64
- {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Debug|x64.Build.0 = Debug|x64
- {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Debug|x86.ActiveCfg = Debug|Win32
- {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Debug|x86.Build.0 = Debug|Win32
- {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Release|Any CPU.ActiveCfg = Release|Win32
- {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Release|x64.ActiveCfg = Release|x64
- {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Release|x64.Build.0 = Release|x64
- {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Release|x86.ActiveCfg = Release|Win32
- {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Release|x86.Build.0 = Release|Win32
{439824F9-1455-4CC4-BD79-B44FA0A16552}.Debug|Any CPU.ActiveCfg = Debug|Win32
{439824F9-1455-4CC4-BD79-B44FA0A16552}.Debug|x64.ActiveCfg = Debug|x64
{439824F9-1455-4CC4-BD79-B44FA0A16552}.Debug|x64.Build.0 = Debug|x64
@@ -142,20 +66,90 @@ Global
{439824F9-1455-4CC4-BD79-B44FA0A16552}.Release|x64.Build.0 = Release|x64
{439824F9-1455-4CC4-BD79-B44FA0A16552}.Release|x86.ActiveCfg = Release|Win32
{439824F9-1455-4CC4-BD79-B44FA0A16552}.Release|x86.Build.0 = Release|Win32
+ {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Debug|x64.ActiveCfg = Debug|x64
+ {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Debug|x64.Build.0 = Debug|x64
+ {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Debug|x86.ActiveCfg = Debug|Win32
+ {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Debug|x86.Build.0 = Debug|Win32
+ {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Release|Any CPU.ActiveCfg = Release|Win32
+ {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Release|x64.ActiveCfg = Release|x64
+ {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Release|x64.Build.0 = Release|x64
+ {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Release|x86.ActiveCfg = Release|Win32
+ {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE}.Release|x86.Build.0 = Release|Win32
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34}.Debug|x64.Build.0 = Debug|Any CPU
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34}.Debug|x86.Build.0 = Debug|Any CPU
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34}.Release|x64.ActiveCfg = Release|Any CPU
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34}.Release|x64.Build.0 = Release|Any CPU
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34}.Release|x86.ActiveCfg = Release|Any CPU
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34}.Release|x86.Build.0 = Release|Any CPU
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60}.Debug|x64.Build.0 = Debug|Any CPU
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60}.Debug|x86.Build.0 = Debug|Any CPU
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60}.Release|x64.ActiveCfg = Release|Any CPU
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60}.Release|x64.Build.0 = Release|Any CPU
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60}.Release|x86.ActiveCfg = Release|Any CPU
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60}.Release|x86.Build.0 = Release|Any CPU
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}.Debug|x64.Build.0 = Debug|Any CPU
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}.Debug|x86.Build.0 = Debug|Any CPU
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}.Release|x64.ActiveCfg = Release|Any CPU
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}.Release|x64.Build.0 = Release|Any CPU
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}.Release|x86.ActiveCfg = Release|Any CPU
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92}.Release|x86.Build.0 = Release|Any CPU
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}.Debug|x64.Build.0 = Debug|Any CPU
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}.Debug|x86.Build.0 = Debug|Any CPU
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}.Release|x64.ActiveCfg = Release|Any CPU
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}.Release|x64.Build.0 = Release|Any CPU
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}.Release|x86.ActiveCfg = Release|Any CPU
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1}.Release|x86.Build.0 = Release|Any CPU
+ {3BFEF549-2F58-4449-A9FF-DAB1206C07BC}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {3BFEF549-2F58-4449-A9FF-DAB1206C07BC}.Debug|x64.ActiveCfg = Debug|x64
+ {3BFEF549-2F58-4449-A9FF-DAB1206C07BC}.Debug|x64.Build.0 = Debug|x64
+ {3BFEF549-2F58-4449-A9FF-DAB1206C07BC}.Debug|x86.ActiveCfg = Debug|x86
+ {3BFEF549-2F58-4449-A9FF-DAB1206C07BC}.Debug|x86.Build.0 = Debug|x86
+ {3BFEF549-2F58-4449-A9FF-DAB1206C07BC}.Release|Any CPU.ActiveCfg = Release|x86
+ {3BFEF549-2F58-4449-A9FF-DAB1206C07BC}.Release|x64.ActiveCfg = Release|x64
+ {3BFEF549-2F58-4449-A9FF-DAB1206C07BC}.Release|x64.Build.0 = Release|x64
+ {3BFEF549-2F58-4449-A9FF-DAB1206C07BC}.Release|x86.ActiveCfg = Release|x86
+ {3BFEF549-2F58-4449-A9FF-DAB1206C07BC}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64} = {C74B8F36-FD2F-45C9-9B8A-00E7CF0126A9}
- {8B3446E8-E6A8-4591-AA63-A95837C6E97C} = {04B1EDB6-E967-4D25-89B9-E6F8304038CD}
- {4106DB10-E09F-480E-9CE6-B39235512EE6} = {EF30B533-D715-421A-92B7-92FEF460AC9C}
- {F54715C3-88D8-49E3-A291-C13570FE81FC} = {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520}
- {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA} = {EF30B533-D715-421A-92B7-92FEF460AC9C}
- {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520} = {EF30B533-D715-421A-92B7-92FEF460AC9C}
- {16E521CE-77F1-4B1C-A183-520A41C4F372} = {04B1EDB6-E967-4D25-89B9-E6F8304038CD}
- {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE} = {16E521CE-77F1-4B1C-A183-520A41C4F372}
- {439824F9-1455-4CC4-BD79-B44FA0A16552} = {16E521CE-77F1-4B1C-A183-520A41C4F372}
+ {439824F9-1455-4CC4-BD79-B44FA0A16552} = {CB89CE6B-FE5B-42EC-A1AA-4CE48B58C824}
+ {4787A64F-9A3E-4867-A55A-70CB4B2B2FFE} = {CB89CE6B-FE5B-42EC-A1AA-4CE48B58C824}
+ {07A39A11-7E87-48E5-8BFB-CC525DC3E338} = {DFD791BE-650D-4D28-B433-0F7F3396E504}
+ {2130E0FD-A21F-47E9-8207-06B6A122CB4A} = {DFD791BE-650D-4D28-B433-0F7F3396E504}
+ {996147E5-A4D4-40B8-A5B9-18E1B0F6A432} = {DFD791BE-650D-4D28-B433-0F7F3396E504}
+ {0C044E38-3640-4F91-8A62-3F54DC7E7F34} = {2130E0FD-A21F-47E9-8207-06B6A122CB4A}
+ {CDE1208E-198D-4E07-80C8-AB1E0B662A60} = {07A39A11-7E87-48E5-8BFB-CC525DC3E338}
+ {7C51C3DB-C835-404B-A8F1-0B5F4E23DA92} = {996147E5-A4D4-40B8-A5B9-18E1B0F6A432}
+ {7CE4E466-3CD9-4264-9BC7-9A4FF333C8A1} = {996147E5-A4D4-40B8-A5B9-18E1B0F6A432}
+ {E27133AD-4B60-4EC9-9DE9-56762ADA16D7} = {996147E5-A4D4-40B8-A5B9-18E1B0F6A432}
+ {3BFEF549-2F58-4449-A9FF-DAB1206C07BC} = {E27133AD-4B60-4EC9-9DE9-56762ADA16D7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {DB4F868D-E1AE-4FD7-9333-69FA15B268C5}
diff --git a/src/Servers/IIS/NuGetPackageVerifier.json b/src/Servers/IIS/IISIntegration/NuGetPackageVerifier.json
similarity index 100%
rename from src/Servers/IIS/NuGetPackageVerifier.json
rename to src/Servers/IIS/IISIntegration/NuGetPackageVerifier.json
diff --git a/src/Servers/IIS/NuGetPackageVerifier.xplat.json b/src/Servers/IIS/IISIntegration/NuGetPackageVerifier.xplat.json
similarity index 100%
rename from src/Servers/IIS/NuGetPackageVerifier.xplat.json
rename to src/Servers/IIS/IISIntegration/NuGetPackageVerifier.xplat.json
diff --git a/src/Servers/IIS/samples/IISSample/IISSample.csproj b/src/Servers/IIS/IISIntegration/samples/IISSample/IISSample.csproj
similarity index 100%
rename from src/Servers/IIS/samples/IISSample/IISSample.csproj
rename to src/Servers/IIS/IISIntegration/samples/IISSample/IISSample.csproj
diff --git a/src/Servers/IIS/samples/IISSample/Startup.cs b/src/Servers/IIS/IISIntegration/samples/IISSample/Startup.cs
similarity index 100%
rename from src/Servers/IIS/samples/IISSample/Startup.cs
rename to src/Servers/IIS/IISIntegration/samples/IISSample/Startup.cs
diff --git a/src/Servers/IIS/samples/IISSample/web.config b/src/Servers/IIS/IISIntegration/samples/IISSample/web.config
similarity index 100%
rename from src/Servers/IIS/samples/IISSample/web.config
rename to src/Servers/IIS/IISIntegration/samples/IISSample/web.config
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/AuthenticationHandler.cs b/src/Servers/IIS/IISIntegration/src/AuthenticationHandler.cs
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/AuthenticationHandler.cs
rename to src/Servers/IIS/IISIntegration/src/AuthenticationHandler.cs
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/ForwardedTlsConnectionFeature.cs b/src/Servers/IIS/IISIntegration/src/ForwardedTlsConnectionFeature.cs
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/ForwardedTlsConnectionFeature.cs
rename to src/Servers/IIS/IISIntegration/src/ForwardedTlsConnectionFeature.cs
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/IISDefaults.cs b/src/Servers/IIS/IISIntegration/src/IISDefaults.cs
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/IISDefaults.cs
rename to src/Servers/IIS/IISIntegration/src/IISDefaults.cs
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/IISHostingStartup.cs b/src/Servers/IIS/IISIntegration/src/IISHostingStartup.cs
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/IISHostingStartup.cs
rename to src/Servers/IIS/IISIntegration/src/IISHostingStartup.cs
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/IISMiddleware.cs b/src/Servers/IIS/IISIntegration/src/IISMiddleware.cs
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/IISMiddleware.cs
rename to src/Servers/IIS/IISIntegration/src/IISMiddleware.cs
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/IISOptions.cs b/src/Servers/IIS/IISIntegration/src/IISOptions.cs
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/IISOptions.cs
rename to src/Servers/IIS/IISIntegration/src/IISOptions.cs
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/IISSetupFilter.cs b/src/Servers/IIS/IISIntegration/src/IISSetupFilter.cs
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/IISSetupFilter.cs
rename to src/Servers/IIS/IISIntegration/src/IISSetupFilter.cs
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/Microsoft.AspNetCore.Server.IISIntegration.csproj b/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj
similarity index 87%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/Microsoft.AspNetCore.Server.IISIntegration.csproj
rename to src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj
index 2bddeaaabb..80365a8002 100644
--- a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/Microsoft.AspNetCore.Server.IISIntegration.csproj
+++ b/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj
@@ -15,10 +15,10 @@
-
+
False
-
+
False
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/NativeMethods.cs b/src/Servers/IIS/IISIntegration/src/NativeMethods.cs
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/NativeMethods.cs
rename to src/Servers/IIS/IISIntegration/src/NativeMethods.cs
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/Properties/AssemblyInfo.cs b/src/Servers/IIS/IISIntegration/src/Properties/AssemblyInfo.cs
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/Properties/AssemblyInfo.cs
rename to src/Servers/IIS/IISIntegration/src/Properties/AssemblyInfo.cs
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/WebHostBuilderIISExtensions.cs b/src/Servers/IIS/IISIntegration/src/WebHostBuilderIISExtensions.cs
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/WebHostBuilderIISExtensions.cs
rename to src/Servers/IIS/IISIntegration/src/WebHostBuilderIISExtensions.cs
diff --git a/src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/baseline.netcore.json b/src/Servers/IIS/IISIntegration/src/baseline.netcore.json
similarity index 100%
rename from src/Servers/IIS/src/Microsoft.AspNetCore.Server.IISIntegration/baseline.netcore.json
rename to src/Servers/IIS/IISIntegration/src/baseline.netcore.json
diff --git a/src/Servers/IIS/test/IISIntegration.FunctionalTests/AppHostConfig/Http.config b/src/Servers/IIS/IISIntegration/test/FunctionalTests/AppHostConfig/Http.config
similarity index 100%
rename from src/Servers/IIS/test/IISIntegration.FunctionalTests/AppHostConfig/Http.config
rename to src/Servers/IIS/IISIntegration/test/FunctionalTests/AppHostConfig/Http.config
diff --git a/src/Servers/IIS/test/IISIntegration.FunctionalTests/AppHostConfig/Https.config b/src/Servers/IIS/IISIntegration/test/FunctionalTests/AppHostConfig/Https.config
similarity index 100%
rename from src/Servers/IIS/test/IISIntegration.FunctionalTests/AppHostConfig/Https.config
rename to src/Servers/IIS/IISIntegration/test/FunctionalTests/AppHostConfig/Https.config
diff --git a/src/Servers/IIS/test/IISIntegration.FunctionalTests/AppHostConfig/NtlmAuthentation.config b/src/Servers/IIS/IISIntegration/test/FunctionalTests/AppHostConfig/NtlmAuthentation.config
similarity index 100%
rename from src/Servers/IIS/test/IISIntegration.FunctionalTests/AppHostConfig/NtlmAuthentation.config
rename to src/Servers/IIS/IISIntegration/test/FunctionalTests/AppHostConfig/NtlmAuthentation.config
diff --git a/src/Servers/IIS/test/IISIntegration.FunctionalTests/AppHostConfig/WebsocketsNotSupported.config b/src/Servers/IIS/IISIntegration/test/FunctionalTests/AppHostConfig/WebsocketsNotSupported.config
similarity index 100%
rename from src/Servers/IIS/test/IISIntegration.FunctionalTests/AppHostConfig/WebsocketsNotSupported.config
rename to src/Servers/IIS/IISIntegration/test/FunctionalTests/AppHostConfig/WebsocketsNotSupported.config
diff --git a/src/Servers/IIS/test/IISIntegration.FunctionalTests/IISIntegration.FunctionalTests.csproj b/src/Servers/IIS/IISIntegration/test/FunctionalTests/IISIntegration.FunctionalTests.csproj
similarity index 100%
rename from src/Servers/IIS/test/IISIntegration.FunctionalTests/IISIntegration.FunctionalTests.csproj
rename to src/Servers/IIS/IISIntegration/test/FunctionalTests/IISIntegration.FunctionalTests.csproj
diff --git a/src/Servers/IIS/test/IISIntegration.FunctionalTests/OutOfProcess/HelloWorldTest.cs b/src/Servers/IIS/IISIntegration/test/FunctionalTests/OutOfProcess/HelloWorldTest.cs
similarity index 100%
rename from src/Servers/IIS/test/IISIntegration.FunctionalTests/OutOfProcess/HelloWorldTest.cs
rename to src/Servers/IIS/IISIntegration/test/FunctionalTests/OutOfProcess/HelloWorldTest.cs
diff --git a/src/Servers/IIS/test/IISIntegration.FunctionalTests/OutOfProcess/HttpsTest.cs b/src/Servers/IIS/IISIntegration/test/FunctionalTests/OutOfProcess/HttpsTest.cs
similarity index 100%
rename from src/Servers/IIS/test/IISIntegration.FunctionalTests/OutOfProcess/HttpsTest.cs
rename to src/Servers/IIS/IISIntegration/test/FunctionalTests/OutOfProcess/HttpsTest.cs
diff --git a/src/Servers/IIS/test/IISIntegration.FunctionalTests/OutOfProcess/NtlmAuthentationTest.cs b/src/Servers/IIS/IISIntegration/test/FunctionalTests/OutOfProcess/NtlmAuthentationTest.cs
similarity index 100%
rename from src/Servers/IIS/test/IISIntegration.FunctionalTests/OutOfProcess/NtlmAuthentationTest.cs
rename to src/Servers/IIS/IISIntegration/test/FunctionalTests/OutOfProcess/NtlmAuthentationTest.cs
diff --git a/src/Servers/IIS/test/IISIntegration.FunctionalTests/Properties/AssemblyInfo.cs b/src/Servers/IIS/IISIntegration/test/FunctionalTests/Properties/AssemblyInfo.cs
similarity index 100%
rename from src/Servers/IIS/test/IISIntegration.FunctionalTests/Properties/AssemblyInfo.cs
rename to src/Servers/IIS/IISIntegration/test/FunctionalTests/Properties/AssemblyInfo.cs
diff --git a/src/Servers/IIS/test/IISIntegration.FunctionalTests/UpgradeFeatureDetectionTests.cs b/src/Servers/IIS/IISIntegration/test/FunctionalTests/UpgradeFeatureDetectionTests.cs
similarity index 100%
rename from src/Servers/IIS/test/IISIntegration.FunctionalTests/UpgradeFeatureDetectionTests.cs
rename to src/Servers/IIS/IISIntegration/test/FunctionalTests/UpgradeFeatureDetectionTests.cs
diff --git a/src/Servers/IIS/test/IISIntegration.FunctionalTests/Utilities/Helpers.cs b/src/Servers/IIS/IISIntegration/test/FunctionalTests/Utilities/Helpers.cs
similarity index 100%
rename from src/Servers/IIS/test/IISIntegration.FunctionalTests/Utilities/Helpers.cs
rename to src/Servers/IIS/IISIntegration/test/FunctionalTests/Utilities/Helpers.cs
diff --git a/src/Servers/IIS/test/Microsoft.AspNetCore.Server.IISIntegration.Tests/IISExtensionTests.cs b/src/Servers/IIS/IISIntegration/test/Tests/IISExtensionTests.cs
similarity index 100%
rename from src/Servers/IIS/test/Microsoft.AspNetCore.Server.IISIntegration.Tests/IISExtensionTests.cs
rename to src/Servers/IIS/IISIntegration/test/Tests/IISExtensionTests.cs
diff --git a/src/Servers/IIS/test/Microsoft.AspNetCore.Server.IISIntegration.Tests/IISMiddlewareTests.cs b/src/Servers/IIS/IISIntegration/test/Tests/IISMiddlewareTests.cs
similarity index 100%
rename from src/Servers/IIS/test/Microsoft.AspNetCore.Server.IISIntegration.Tests/IISMiddlewareTests.cs
rename to src/Servers/IIS/IISIntegration/test/Tests/IISMiddlewareTests.cs
diff --git a/src/Servers/IIS/test/Microsoft.AspNetCore.Server.IISIntegration.Tests/Microsoft.AspNetCore.Server.IISIntegration.Tests.csproj b/src/Servers/IIS/IISIntegration/test/Tests/Microsoft.AspNetCore.Server.IISIntegration.Tests.csproj
similarity index 100%
rename from src/Servers/IIS/test/Microsoft.AspNetCore.Server.IISIntegration.Tests/Microsoft.AspNetCore.Server.IISIntegration.Tests.csproj
rename to src/Servers/IIS/IISIntegration/test/Tests/Microsoft.AspNetCore.Server.IISIntegration.Tests.csproj
diff --git a/src/Servers/IIS/test/testassets/OutOfProcessWebSite/OutOfProcessWebSite.csproj b/src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/OutOfProcessWebSite.csproj
similarity index 91%
rename from src/Servers/IIS/test/testassets/OutOfProcessWebSite/OutOfProcessWebSite.csproj
rename to src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/OutOfProcessWebSite.csproj
index 1b08374643..ca0d979dec 100644
--- a/src/Servers/IIS/test/testassets/OutOfProcessWebSite/OutOfProcessWebSite.csproj
+++ b/src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/OutOfProcessWebSite.csproj
@@ -1,6 +1,6 @@
-
+
$(StandardTestTfms)
diff --git a/src/Servers/IIS/test/testassets/OutOfProcessWebSite/Program.cs b/src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/Program.cs
similarity index 100%
rename from src/Servers/IIS/test/testassets/OutOfProcessWebSite/Program.cs
rename to src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/Program.cs
diff --git a/src/Servers/IIS/test/testassets/OutOfProcessWebSite/StartupHelloWorld.cs b/src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/StartupHelloWorld.cs
similarity index 100%
rename from src/Servers/IIS/test/testassets/OutOfProcessWebSite/StartupHelloWorld.cs
rename to src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/StartupHelloWorld.cs
diff --git a/src/Servers/IIS/test/testassets/OutOfProcessWebSite/StartupHttpsHelloWorld.cs b/src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/StartupHttpsHelloWorld.cs
similarity index 100%
rename from src/Servers/IIS/test/testassets/OutOfProcessWebSite/StartupHttpsHelloWorld.cs
rename to src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/StartupHttpsHelloWorld.cs
diff --git a/src/Servers/IIS/test/testassets/OutOfProcessWebSite/StartupNtlmAuthentication.cs b/src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/StartupNtlmAuthentication.cs
similarity index 100%
rename from src/Servers/IIS/test/testassets/OutOfProcessWebSite/StartupNtlmAuthentication.cs
rename to src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/StartupNtlmAuthentication.cs
diff --git a/src/Servers/IIS/test/testassets/OutOfProcessWebSite/StartupUpgradeFeatureDetection.cs b/src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/StartupUpgradeFeatureDetection.cs
similarity index 100%
rename from src/Servers/IIS/test/testassets/OutOfProcessWebSite/StartupUpgradeFeatureDetection.cs
rename to src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/StartupUpgradeFeatureDetection.cs
diff --git a/src/Servers/IIS/test/testassets/OutOfProcessWebSite/web.config b/src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/web.config
similarity index 100%
rename from src/Servers/IIS/test/testassets/OutOfProcessWebSite/web.config
rename to src/Servers/IIS/IISIntegration/test/testassets/OutOfProcessWebSite/web.config
diff --git a/src/Servers/IIS/build/testsite.props b/src/Servers/IIS/build/testsite.props
index d1f746bb2e..76714bf735 100644
--- a/src/Servers/IIS/build/testsite.props
+++ b/src/Servers/IIS/build/testsite.props
@@ -29,8 +29,8 @@
-
-
+
+
diff --git a/src/Servers/IIS/tools/certificate.ps1 b/src/Servers/IIS/tools/certificate.ps1
deleted file mode 100644
index 52c8817796..0000000000
--- a/src/Servers/IIS/tools/certificate.ps1
+++ /dev/null
@@ -1,499 +0,0 @@
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-<##############################################################################
- Example
-
- ###############################################################################
- # Create a new root certificate on "Cert:\LocalMachine\My" and export it to "Cert:\LocalMachine\Root"
- # FYI, you can do the same thing with one of the following commands:
- # %sdxroot\tools\amd64\MakeCert.exe -r -pe -n "CN=ANCMTest_Root" -b 12/22/2013 -e 12/23/2020 -ss root -sr localmachine -len 2048 -a sha256
- # $thumbPrint = (New-SelfSignedCertificate -DnsName "ANCMTest_Root", "ANCMTest_Roo3" -CertStoreLocation "cert:\LocalMachine\My").Thumbprint
- ###############################################################################
- $rootSubject = "ANCMTest_Root"
- $thumbPrint = .\certificate.ps1 -Command Create-SelfSignedCertificate -Subject $rootSubject
- .\certificate.ps1 -Command Export-CertificateTo -TargetThumbPrint $thumbPrint -TargetSSLStore "Cert:\LocalMachine\My" -ExportToSSLStore "Cert:\LocalMachine\Root"
- .\certificate.ps1 -Command Get-CertificateThumbPrint -Subject $rootSubject -TargetSSLStore "Cert:\LocalMachine\Root"
-
- ###############################################################################
- # Create a new certificate setting issuer with the root certicate's subject name on "Cert:\LocalMachine\My" and export it to "Cert:\LocalMachine\Root"
- # FYI, you can do the same thing with one of the following commands:
- # %sdxroot\tools\amd64\MakeCert.exe -pe -n "CN=ANCMTestWebServer" -b 12/22/2013 -e 12/23/2020 -eku 1.3.6.1.5.5.7.3.1 -is root -ir localmachine -in $rootSubject -len 2048 -ss my -sr localmachine -a sha256
- # %sdxroot\tools\amd64\MakeCert.exe -pe -n "CN=ANCMTest_Client" -eku 1.3.6.1.5.5.7.3.2 -is root -ir localmachine -in ANCMTest_Root -ss my -sr currentuser -len 2048 -a sha256
- ###############################################################################
- $childSubject = "ANCMTest_Client"
- $thumbPrint2 = .\certificate.ps1 -Command Create-SelfSignedCertificate -Subject $childSubject -IssuerName $rootSubject
- ("Result: $thumbPrint2")
- .\certificate.ps1 -Command Export-CertificateTo -TargetThumbPrint $thumbPrint2 -TargetSSLStore "Cert:\LocalMachine\My" -ExportToSSLStore "Cert:\CurrentUser\My"
-
- .\certificate.ps1 -Command Export-CertificateTo -TargetThumbPrint $thumbPrint2 -TargetSSLStore "Cert:\LocalMachine\My" -ExportToSSLStore C:\gitroot\AspNetCoreModule\tools\test.pfx -PfxPassword test
-
-
- # Clean up
- .\certificate.ps1 -Command Delete-Certificate -TargetThumbPrint $thumbPrint2 -TargetSSLStore "Cert:\LocalMachine\My"
- .\certificate.ps1 -Command Delete-Certificate -TargetThumbPrint $thumbPrint2 -TargetSSLStore "Cert:\CurrentUser\Root"
- .\certificate.ps1 -Command Delete-Certificate -TargetThumbPrint $thumbPrint -TargetSSLStore "Cert:\LocalMachine\My"
- .\certificate.ps1 -Command Delete-Certificate -TargetThumbPrint $thumbPrint -TargetSSLStore "Cert:\LocalMachine\Root"
-
-###############################################################################>
-
-
-Param(
- [parameter(Mandatory=$true , Position=0)]
- [ValidateSet("Create-SelfSignedCertificate",
- "Delete-Certificate",
- "Export-CertificateTo",
- "Get-CertificateThumbPrint",
- "Get-CertificatePublicKey")]
- [string]
- $Command,
-
- [parameter()]
- [string]
- $Subject,
-
- [parameter()]
- [string]
- $IssuerName,
-
- [Parameter()]
- [string]
- $FriendlyName = "",
-
- [Parameter()]
- [string[]]
- $AlternativeNames = "",
-
- [Parameter()]
- [string]
- $TargetSSLStore = "",
-
- [Parameter()]
- [string]
- $ExportToSSLStore = "",
-
- [Parameter()]
- [string]
- $PfxPassword = "",
-
- [Parameter()]
- [string]
- $TargetThumbPrint = ""
-)
-
-function Create-SelfSignedCertificate($_subject, $_friendlyName, $_alternativeNames, $_issuerName) {
-
- if (-not $_subject)
- {
- return ("Error!!! _subject is required")
- }
-
- #
- # $_issuerName should be set with the value subject and its certificate path will be root path
- if (-not $_issuerName)
- {
- $_issuerName = $_subject
- }
-
- #
- # Create $subjectDn and $issuerDn
- $subjectDn = new-object -com "X509Enrollment.CX500DistinguishedName"
- $subjectDn.Encode( "CN=" + $_subject, $subjectDn.X500NameFlags.X500NameFlags.XCN_CERT_NAME_STR_NONE)
- $issuerDn = new-object -com "X509Enrollment.CX500DistinguishedName"
- $issuerDn.Encode("CN=" + $_issuerName, $subjectDn.X500NameFlags.X500NameFlags.XCN_CERT_NAME_STR_NONE)
-
- #
- # Create a new Private Key
- $key = new-object -com "X509Enrollment.CX509PrivateKey"
- $key.ProviderName = "Microsoft Enhanced RSA and AES Cryptographic Provider"
- # XCN_AT_SIGNATURE, The key can be used for signing
- $key.KeySpec = 2
- $key.Length = 2048
- # MachineContext 0: Current User, 1: Local Machine
- $key.MachineContext = 1
- $key.Create()
-
- #
- # Create a cert object with the newly created private key
- $cert = new-object -com "X509Enrollment.CX509CertificateRequestCertificate"
- $cert.InitializeFromPrivateKey(2, $key, "")
- $cert.Subject = $subjectDn
- $cert.Issuer = $issuerDn
- $cert.NotBefore = (get-date).AddMinutes(-10)
- $cert.NotAfter = $cert.NotBefore.AddYears(2)
-
- #Use Sha256
- $hashAlgorithm = New-Object -ComObject X509Enrollment.CObjectId
- $hashAlgorithm.InitializeFromAlgorithmName(1,0,0,"SHA256")
- $cert.HashAlgorithm = $hashAlgorithm
-
- #
- # Key usage should be set for non-root certificate
- if ($_issuerName -ne $_subject)
- {
- #
- # Extended key usage
- $clientAuthOid = New-Object -ComObject "X509Enrollment.CObjectId"
- $clientAuthOid.InitializeFromValue("1.3.6.1.5.5.7.3.2")
- $serverAuthOid = new-object -com "X509Enrollment.CObjectId"
- $serverAuthOid.InitializeFromValue("1.3.6.1.5.5.7.3.1")
- $ekuOids = new-object -com "X509Enrollment.CObjectIds.1"
- $ekuOids.add($clientAuthOid)
- $ekuOids.add($serverAuthOid)
- $ekuExt = new-object -com "X509Enrollment.CX509ExtensionEnhancedKeyUsage"
- $ekuExt.InitializeEncode($ekuOids)
- $cert.X509Extensions.Add($ekuext)
-
- #
- #Set Key usage
- $keyUsage = New-Object -com "X509Enrollment.cx509extensionkeyusage"
- # XCN_CERT_KEY_ENCIPHERMENT_KEY_USAGE
- $flags = 0x20
- # XCN_CERT_DIGITAL_SIGNATURE_KEY_USAGE
- $flags = $flags -bor 0x80
- $keyUsage.InitializeEncode($flags)
- $cert.X509Extensions.Add($keyUsage)
- }
-
- #
- # Subject alternative names
- if ($_alternativeNames -ne $null) {
- $names = new-object -com "X509Enrollment.CAlternativeNames"
- $altNames = new-object -com "X509Enrollment.CX509ExtensionAlternativeNames"
- foreach ($n in $_alternativeNames) {
- $name = new-object -com "X509Enrollment.CAlternativeName"
- # Dns Alternative Name
- $name.InitializeFromString(3, $n)
- $names.Add($name)
- }
- $altNames.InitializeEncode($names)
- $cert.X509Extensions.Add($altNames)
- }
-
- $cert.Encode()
-
- #$locator = $(New-Object "System.Guid").ToString()
- $locator = [guid]::NewGuid().ToString()
- $enrollment = new-object -com "X509Enrollment.CX509Enrollment"
- $enrollment.CertificateFriendlyName = $locator
- $enrollment.InitializeFromRequest($cert)
- $certdata = $enrollment.CreateRequest(0)
- $enrollment.InstallResponse(2, $certdata, 0, "")
-
- # Wait for certificate to be populated
- $end = $(Get-Date).AddSeconds(1)
- do {
- $Certificates = Get-ChildItem Cert:\LocalMachine\My
- foreach ($item in $Certificates)
- {
- if ($item.FriendlyName -eq $locator)
- {
- $CACertificate = $item
- }
- }
- } while ($CACertificate -eq $null -and $(Get-Date) -lt $end)
-
- $thumbPrint = ""
- if ($CACertificate -and $CACertificate.Thumbprint)
- {
- $thumbPrint = $CACertificate.Thumbprint.Trim()
- }
- return $thumbPrint
-}
-
-function Delete-Certificate($_targetThumbPrint, $_targetSSLStore = $TargetSSLStore) {
-
- if (-not $_targetThumbPrint)
- {
- return ("Error!!! _targetThumbPrint is required")
- }
-
- if (Test-Path "$_targetSSLStore\$_targetThumbPrint")
- {
- Remove-Item "$_targetSSLStore\$_targetThumbPrint" -Force -Confirm:$false
- }
-
- if (Test-Path "$_targetSSLStore\$_targetThumbPrint")
- {
- return ("Error!!! Failed to delete a certificate of $_targetThumbPrint")
- }
-}
-
-function Export-CertificateTo($_targetThumbPrint, $_exportToSSLStore, $_password)
-{
- if (-not $_targetThumbPrint)
- {
- return ("Error!!! _targetThumbPrint is required")
- }
-
- if (-not (Test-Path "$TargetSSLStore\$_targetThumbPrint"))
- {
- return ("Error!!! Export failed. Can't find target certificate: $TargetSSLStore\$_targetThumbPrint")
- }
-
- $cert = Get-Item "$TargetSSLStore\$_targetThumbPrint"
- $tempExportFile = "$env:temp\_tempCertificate.cer"
- if (Test-Path $tempExportFile)
- {
- Remove-Item $tempExportFile -Force -Confirm:$false
- }
-
- $isThisWin7 = $false
- $exportToSSLStoreName = $null
- $exportToSSLStoreLocation = $null
- $targetSSLStoreName = $null
- $targetSSLStoreLocation = $null
-
- if ((Get-Command Export-Certificate 2> out-null) -eq $null)
- {
- $isThisWin7 = $true
- }
-
- # if _exportToSSLStore points to a .pfx file
- if ($exportToSSLStore.ToLower().EndsWith(".pfx"))
- {
- if (-not $_password)
- {
- return ("Error!!! _password is required")
- }
-
- if ($isThisWin7)
- {
- if ($TargetSSLStore.ToLower().Contains("my"))
- {
- $targetSSLStoreName = "My"
- }
- elseif ($_exportToSSLStore.ToLower().Contains("root"))
- {
- $targetSSLStoreName = "Root"
- }
- else
- {
- throw ("Unsupported store name " + $TargetSSLStore)
- }
- if ($TargetSSLStore.ToLower().Contains("localmachine"))
- {
- $targetSSLStoreLocation = "LocalMachine"
- }
- else
- {
- throw ("Unsupported store location name " + $TargetSSLStore)
- }
-
- &certutil.exe @('-exportpfx', '-p', $_password, $targetSSLStoreName, $_targetThumbPrint, $_exportToSSLStore) | out-null
-
- if ( Test-Path $_exportToSSLStore )
- {
- # Succeeded to export to .pfx file
- return
- }
- else
- {
- return ("Error!!! Can't export $TargetSSLStore\$_targetThumbPrint to $tempExportFile")
- }
- }
- else
- {
- $securedPassword = ConvertTo-SecureString -String $_password -Force –AsPlainText
- $exportedPfxFile = Export-PfxCertificate -FilePath $_exportToSSLStore -Cert $TargetSSLStore\$_targetThumbPrint -Password $securedPassword
- if ( ($exportedPfxFile -ne $null) -and (Test-Path $exportedPfxFile.FullName) )
- {
- # Succeeded to export to .pfx file
- return
- }
- else
- {
- return ("Error!!! Can't export $TargetSSLStore\$_targetThumbPrint to $tempExportFile")
- }
- }
- }
-
- if ($isThisWin7)
- {
- # Initialize variables for Win7
- if ($_exportToSSLStore.ToLower().Contains("my"))
- {
- $exportToSSLStoreName = [System.Security.Cryptography.X509Certificates.StoreName]::My
- }
- elseif ($_exportToSSLStore.ToLower().Contains("root"))
- {
- $exportToSSLStoreName = [System.Security.Cryptography.X509Certificates.StoreName]::Root
- }
- else
- {
- throw ("Unsupported store name " + $_exportToSSLStore)
- }
- if ($_exportToSSLStore.ToLower().Contains("localmachine"))
- {
- $exportToSSLStoreLocation = [System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine
- }
- elseif ($_exportToSSLStore.ToLower().Contains("currentuser"))
- {
- $exportToSSLStoreLocation = [System.Security.Cryptography.X509Certificates.StoreLocation]::CurrentUser
- }
- else
- {
- throw ("Unsupported store location name " + $_exportToSSLStore)
- }
-
- # Export-Certificate is not available.
- $isThisWin7 = $true
- $certificate = Get-Item "$TargetSSLStore\$_targetThumbPrint"
- $base64certificate = @"
------BEGIN CERTIFICATE-----
-$([Convert]::ToBase64String($certificate.Export('Cert'), [System.Base64FormattingOptions]::InsertLineBreaks)))
------END CERTIFICATE-----
-"@
- Set-Content -Path $tempExportFile -Value $base64certificate | Out-Null
- }
- else
- {
- Export-Certificate -Cert $cert -FilePath $tempExportFile | Out-Null
- if (-not (Test-Path $tempExportFile))
- {
- return ("Error!!! Can't export $TargetSSLStore\$_targetThumbPrint to $tempExportFile")
- }
- }
-
- if ($isThisWin7)
- {
- [Reflection.Assembly]::Load("System.Security, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a") | Out-Null
- $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($tempExportFile)
- $store = New-Object System.Security.Cryptography.X509Certificates.X509Store($exportToSSLStoreName,$exportToSSLStoreLocation)
- $store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite) | Out-Null
- $store.Add($cert) | Out-Null
- }
- else
- {
- # clean up destination SSL store
- Delete-Certificate $_targetThumbPrint $_exportToSSLStore
- if (Test-Path "$_exportToSSLStore\$_targetThumbPrint")
- {
- return ("Error!!! Can't delete already existing one $_exportToSSLStore\$_targetThumbPrint")
- }
- Import-Certificate -CertStoreLocation $_exportToSSLStore -FilePath $tempExportFile | Out-Null
- }
-
- Sleep 3
- if (-not (Test-Path "$_exportToSSLStore\$_targetThumbPrint"))
- {
- return ("Error!!! Can't copy $TargetSSLStore\$_targetThumbPrint to $_exportToSSLStore")
- }
-}
-
-function Get-CertificateThumbPrint($_subject, $_issuerName, $_targetSSLStore)
-{
- if (-not $_subject)
- {
- return ("Error!!! _subject is required")
- }
- if (-not $_targetSSLStore)
- {
- return ("Error!!! _targetSSLStore is required")
- }
-
- if (-not (Test-Path "$_targetSSLStore"))
- {
- return ("Error!!! Can't find target store")
- }
-
- $targetCertificate = $null
-
- $Certificates = Get-ChildItem $_targetSSLStore
- foreach ($item in $Certificates)
- {
- $findItem = $false
- # check subject name first
- if ($item.Subject.ToLower() -eq "CN=$_subject".ToLower())
- {
- $findItem = $true
- }
-
- # check issuerName as well
- if ($_issuerName -and $item.Issuer.ToLower() -ne "CN=$_issuerName".ToLower())
- {
- $findItem = $false
- }
-
- if ($findItem)
- {
- $targetCertificate = $item
- break
- }
- }
- $result = ""
- if ($targetCertificate)
- {
- $result = $targetCertificate.Thumbprint
- }
- else
- {
- ("Error!!! Can't find target certificate")
- }
- return $result
-}
-
-function Get-CertificatePublicKey($_targetThumbPrint)
-{
- if (-not $_targetThumbPrint)
- {
- return ("Error!!! _targetThumbPrint is required")
- }
-
- if (-not (Test-Path "$TargetSSLStore\$_targetThumbPrint"))
- {
- return ("Error!!! Can't find target certificate")
- }
-
- $cert = Get-Item "$TargetSSLStore\$_targetThumbPrint"
- $byteArray = $cert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Cert)
- $publicKey = [System.Convert]::ToBase64String($byteArray).Trim()
-
- return $publicKey
-}
-
-# Error handling and initializing default values
-if (-not $TargetSSLStore)
-{
- $TargetSSLStore = "Cert:\LocalMachine\My"
-}
-else
-{
- if ($Command -eq "Create-SelfSignedCertificate")
- {
- return ("Error!!! Create-SelfSignedCertificate should use default value for -TargetSSLStore if -Issuer is not provided")
- }
-}
-
-if (-not $ExportToSSLStore)
-{
- $ExportToSSLStore = "Cert:\LocalMachine\Root"
-}
-
-switch ($Command)
-{
- "Create-SelfSignedCertificate"
- {
- return Create-SelfSignedCertificate $Subject $FriendlyName $AlternativeNames $IssuerName
- }
- "Delete-Certificate"
- {
- return Delete-Certificate $TargetThumbPrint
- }
- "Export-CertificateTo"
- {
- return Export-CertificateTo $TargetThumbPrint $ExportToSSLStore $PfxPassword
- }
- "Get-CertificateThumbPrint"
- {
- return Get-CertificateThumbPrint $Subject $IssuerName $TargetSSLStore
- }
- "Get-CertificatePublicKey"
- {
- return Get-CertificatePublicKey $TargetThumbPrint
- }
- default
- {
- throw "Unknown command"
- }
-}
diff --git a/src/Servers/IIS/tools/httpsys.ps1 b/src/Servers/IIS/tools/httpsys.ps1
deleted file mode 100644
index af2254e96f..0000000000
--- a/src/Servers/IIS/tools/httpsys.ps1
+++ /dev/null
@@ -1,394 +0,0 @@
-# Copyright (c) .NET Foundation. All rights reserved.
-# Licensed under the MIT License. See License.txt in the project root for license information.
-
-##############################################################################
-# Example
-# $result = .\httpsys.ps1 -Command Get-SslBinding -IpAddress "0x00" -Port 46300
-# .\httpsys.ps1 -Command Add-SslBinding -IpAddress "0x00" -Port 46300 –Thumbprint $result.CertificateHash
-# .\httpsys.ps1 -Command Delete-SslBinding -IpAddress "0x00" -Port 46300
-##############################################################################
-
-Param (
- [parameter(Mandatory=$true , Position=0)]
- [ValidateSet("Add-SslBinding",
- "Delete-SslBinding",
- "Get-SslBinding")]
- [string]
- $Command,
-
- [parameter()]
- [string]
- $IpAddress,
-
- [parameter()]
- [string]
- $Port,
-
- [parameter()]
- [string]
- $Thumbprint,
-
- [parameter()]
- [string]
- $TargetSSLStore,
-
- [parameter()]
- [string]
- $AppId,
-
- [parameter()]
- [System.Net.IPEndPoint]
- $IpEndPoint
- )
-
-
-# adjust parameter variables
-if (-not $IpEndPoint)
-{
- if ($IpAddress -and $Port)
- {
- $IpEndPoint = New-Object "System.Net.IPEndPoint" -ArgumentList $IpAddress,$Port
- }
-}
-
-if (-not $TargetSSLStore)
-{
- $TargetSSLStore = "Cert:\LocalMachine\My"
-}
-
-$StoreName = ($TargetSSLStore.Split("\") | Select-Object -Last 1).Trim()
-
-$Certificate = Get-Item "$TargetSSLStore\$Thumbprint"
-
-if (-not $AppId)
-{
- # Assign a random GUID for $AppId
- $AppId = [guid]::NewGuid()
-}
-
-$cs = '
-namespace Microsoft.IIS.Administration.Setup {
-using System;
-using System.Diagnostics;
-using System.Diagnostics.CodeAnalysis;
-using System.Net;
-using System.Runtime.InteropServices;
-using System.Security.Cryptography.X509Certificates;
-using System.Text;
-using System.ComponentModel;
-
- public class Http {
- public const int HTTP_INITIALIZE_CONFIG = 2;
- public const int HTTP_SERVICE_CONFIG_SSLCERT_INFO = 1;
-
- [DllImport("httpapi.dll", CharSet = CharSet.Auto, PreserveSig = true)]
- public static extern uint HttpDeleteServiceConfiguration(IntPtr ServiceHandle, int ConfigId, ref HTTP_SERVICE_CONFIG_SSL_SET pConfigInformation, int ConfigInformationLength, IntPtr pOverlapped);
-
- [DllImport("httpapi.dll", CharSet = CharSet.Auto, PreserveSig = true)]
- public static extern uint HttpInitialize(HTTPAPI_VERSION version, uint flags, IntPtr pReserved);
-
- [DllImport("httpapi.dll", EntryPoint = "HttpQueryServiceConfiguration",
- CharSet = CharSet.Unicode, ExactSpelling = true,
- CallingConvention = CallingConvention.StdCall)]
- public static extern uint HttpQueryServiceConfiguration(
- IntPtr serviceHandle,
- HTTP_SERVICE_CONFIG_ID configID,
- ref HTTP_SERVICE_CONFIG_SSL_QUERY pInputConfigInfo,
- UInt32 InputConfigInfoLength,
- IntPtr pOutputConfigInfo,
- UInt32 OutputConfigInfoLength,
- [In, Out] ref UInt32 pReturnLength,
- IntPtr pOverlapped
- );
-
- [DllImport("httpapi.dll", CharSet = CharSet.Auto, PreserveSig = true)]
- public static extern uint HttpSetServiceConfiguration(IntPtr ServiceHandle, int ConfigId, ref HTTP_SERVICE_CONFIG_SSL_SET pConfigInformation, int ConfigInformationLength, IntPtr pOverlapped);
-
- [DllImport("httpapi.dll", CharSet = CharSet.Auto, PreserveSig = true)]
- public static extern uint HttpTerminate(uint flags, IntPtr pReserved);
-
- public static HTTP_SERVICE_CONFIG_SSL_SET MarshalConfigSslSet(IntPtr ptr) {
- return (HTTP_SERVICE_CONFIG_SSL_SET)Marshal.PtrToStructure(ptr, typeof(HTTP_SERVICE_CONFIG_SSL_SET));
- }
- }
-
- public enum HTTP_SERVICE_CONFIG_ID {
- HttpServiceConfigIPListenList,
- HttpServiceConfigSSLCertInfo,
- HttpServiceConfigUrlAclInfo,
- HttpServiceConfigMax
- }
-
- public enum HTTP_SERVICE_CONFIG_QUERY_TYPE {
- HttpServiceConfigQueryExact,
- HttpServiceConfigQueryNext,
- HttpServiceConfigQueryMax
- }
-
- [StructLayout(LayoutKind.Sequential)]
- public struct HTTPAPI_VERSION {
- public ushort HttpApiMajorVersion;
- public ushort HttpApiMinorVersion;
- }
-
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
- public struct HTTP_SERVICE_CONFIG_SSL_KEY {
- public IntPtr pIpPort;
- }
-
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
- public struct HTTP_SERVICE_CONFIG_SSL_QUERY {
- public HTTP_SERVICE_CONFIG_QUERY_TYPE QueryDesc;
- public IntPtr KeyDesc;
- public Int32 dwToken;
- }
-
- [StructLayout(LayoutKind.Sequential)]
- public struct HTTP_SERVICE_CONFIG_SSL_SET {
- public IntPtr KeyDesc;
- public uint SslHashLength;
- public IntPtr pSslHash;
- public Guid AppId;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pSslCertStoreName;
- public int DefaultCertCheckMode;
- public int DefaultRevocationFreshnessTime;
- public int DefaultRecovationUrlRetrievalTimeout;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pDefaultSslCtlIdentifier;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pDefaultSslCtlStoreName;
- public int DefaultFlags;
- }
-}
-'
-
-$SUCCESS = 0
-function InitializeInterop() {
- try {
- [Microsoft.IIS.Administration.Setup.Http] | Out-Null
- }
- catch {
- Add-Type $cs
- }
-}
-
-function GetIpEndpointBytes($_ipEndpoint) {
- $socketAddress = $_ipEndpoint.Serialize()
- $ipBytes = [System.Array]::CreateInstance([System.Byte], $socketAddress.Size)
- for ($i = 0; $i -lt $socketAddress.Size; $i++) {
- $ipBytes[$i] = $socketAddress[$i]
- }
- return $ipBytes
-}
-
-function GetBindingInfo($sslConfig) {
- $hash = [System.Array]::CreateInstance([System.Byte], [int]($sslConfig.SslHashLength))
- [System.Runtime.InteropServices.Marshal]::Copy($sslConfig.pSslHash, $hash, 0, $sslConfig.SslHashLength)
-
- $socketAddressLength = 16
- $sa = [System.Array]::CreateInstance([System.Byte], $socketAddressLength)
- [System.Runtime.InteropServices.Marshal]::Copy($sslConfig.KeyDesc, $sa, 0, $socketAddressLength)
- $socketAddress = New-Object "System.Net.SocketAddress" -ArgumentList ([System.Net.Sockets.AddressFamily]::InterNetwork, $socketAddressLength)
- for ($i = 0; $i -lt $sa.Length; $i++) {
- $socketAddress[$i] = $sa[$i]
- }
-
- $ep = New-Object "System.Net.IPEndPoint" -ArgumentList ([ipaddress]::Any, 0)
- $endpoint = [System.Net.IPEndPoint]$ep.Create($socketAddress)
-
- $ret = @{}
- $ret.CertificateHash = [System.BitConverter]::ToString($hash).Replace("-", "")
- $ret.AppId = $sslConfig.AppId
- $ret.IpEndpoint = $endpoint
- return $ret
-}
-
-function InitializeHttpSys() {
- $v = New-Object "Microsoft.IIS.Administration.Setup.HTTPAPI_VERSION"
- $V.HttpApiMajorVersion = 1
- $v.HttpApiMinorVersion = 0
-
- $result = [Microsoft.IIS.Administration.Setup.Http]::HttpInitialize($v, [Microsoft.IIS.Administration.Setup.Http]::HTTP_INITIALIZE_CONFIG, [System.IntPtr]::Zero)
-
- if ($result -ne $SUCCESS) {
- Write-Warning "Error initializing Http API"
- throw [System.ComponentModel.Win32Exception] $([System.int32]$result)
- }
-
- return $result
-}
-
-function TerminateHttpSys() {
- return [Microsoft.IIS.Administration.Setup.Http]::HttpTerminate([Microsoft.IIS.Administration.Setup.Http]::HTTP_INITIALIZE_CONFIG, [System.IntPtr]::Zero)
-}
-
-function Add-SslBinding($_ipEndpoint, $_certificate, $_appId) {
- if ($_ipEndpoint -eq $null) {
- throw "Ip Endpoint required."
- }
-
- if ($_certificate -eq $null) {
- throw "Certificate required."
- }
-
- if ($appId -eq $null) {
- throw "App id required."
- }
-
- <# FYI, [System.Guid]::Parse() is not supported in lower version of powershell
- if (-not($_appId -is [System.Guid])) {
- $_appId = [System.Guid]::Parse($_appId)
- }
- #>
-
- setSslConfiguration $_ipEndpoint $_certificate $_appId
-}
-
-function Delete-SslBinding($_ipEndpoint) {
-
- if ($_ipEndpoint -eq $null) {
- throw "Ip Endpoint required."
- }
-
- setSslConfiguration $_ipEndpoint $null $([System.Guid]::Empty)
-}
-
-function Get-SslBinding($_ipEndpoint) {
-
- if ($_ipEndpoint -eq $null) {
- throw "Ip Endpoint required."
- }
-
- $bufferSize = 4096
- try {
- InitializeHttpSys| Out-Null
-
- $ipBytes = [System.Byte[]]$(GetIpEndpointBytes($_ipEndpoint))
- $hIp = [System.Runtime.InteropServices.GCHandle]::Alloc($ipBytes, [System.Runtime.InteropServices.GCHandleType]::Pinned)
- $pIp = $hIp.AddrOfPinnedObject()
-
- $queryParam = New-Object "Microsoft.IIS.Administration.Setup.HTTP_SERVICE_CONFIG_SSL_QUERY"
- $queryParam.QueryDesc = [Microsoft.IIS.Administration.Setup.HTTP_SERVICE_CONFIG_QUERY_TYPE]::HttpServiceConfigQueryExact
- $queryParam.dwToken = 0
- $queryParam.KeyDesc = $pIp
-
- $returnLen = 0
- $pReturnSet = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($bufferSize)
-
- $result = [Microsoft.IIS.Administration.Setup.Http]::HttpQueryServiceConfiguration(
- [System.IntPtr]::Zero,
- [Microsoft.IIS.Administration.Setup.HTTP_SERVICE_CONFIG_ID]::HttpServiceConfigSSLCertInfo,
- [ref] $queryParam,
- [uint32]([System.Runtime.InteropServices.Marshal]::SizeOf($queryParam)),
- $pReturnSet,
- $bufferSize,
- [ref] $returnLen,
- [System.IntPtr]::Zero)
-
- if ($result -eq 2) {
- # File not found
- return $null
- }
- if ($result -ne $SUCCESS) {
- Write-Warning "Error reading Ssl Cert Configuration"
- throw [System.ComponentModel.Win32Exception] $([System.int32]$result)
- }
- $sslConfig = [Microsoft.IIS.Administration.Setup.Http]::MarshalConfigSslSet($pReturnSet)
- return GetBindingInfo $sslConfig
- }
- finally {
- if ($hIp -ne $null) {
- $hIp.Free()
- $hIp = $null
- }
- if ($pReturnSet -ne [System.IntPtr]::Zero) {
- [System.Runtime.InteropServices.Marshal]::FreeHGlobal($pReturnSet)
- $pReturnSet = [System.IntPtr]::Zero
- }
- TerminateHttpSys | Out-Null
- }
-}
-
-function setSslConfiguration($_ipEndpoint, $_certificate, $_appId) {
-
- try {
- InitializeHttpSys| Out-Null
-
- $sslSet = New-Object "Microsoft.IIS.Administration.Setup.HTTP_SERVICE_CONFIG_SSL_SET"
- $sslSetSize = [System.Runtime.InteropServices.Marshal]::SizeOf($sslSet)
-
- $ipBytes = [System.Byte[]]$(GetIpEndpointBytes($_ipEndpoint))
- $hIp = [System.Runtime.InteropServices.GCHandle]::Alloc($ipBytes, [System.Runtime.InteropServices.GCHandleType]::Pinned)
- $pIp = $hIp.AddrOfPinnedObject()
-
- $sslSet.KeyDesc = $pIp # IntPtr
- $sslSet.SslHashLength = 0
- $sslSet.pSslHash = [System.IntPtr]::Zero
- $sslSet.pSslCertStoreName = [System.IntPtr]::Zero
- $sslSet.AppId = $_appId
-
- if ($_certificate -ne $null) {
- # Create binding
-
- $certBytes = $_certificate.GetCertHash()
- $hCertBytes = [System.Runtime.InteropServices.GCHandle]::Alloc($certBytes, [System.Runtime.InteropServices.GCHandleType]::Pinned)
- $pCertBytes = $hCertBytes.AddrOfPinnedObject()
-
- $sslSet.SslHashLength = 20
- $sslSet.pSslHash = $pCertBytes
- $sslSet.pSslCertStoreName = $StoreName
-
- $result = [Microsoft.IIS.Administration.Setup.Http]::HttpSetServiceConfiguration([System.IntPtr]::Zero,
- [Microsoft.IIS.Administration.Setup.Http]::HTTP_SERVICE_CONFIG_SSLCERT_INFO,
- [ref]$sslSet,
- $sslSetSize,
- [System.IntPtr]::Zero)
- }
- else {
- #Delete binding
- $result = [Microsoft.IIS.Administration.Setup.Http]::HttpDeleteServiceConfiguration([System.IntPtr]::Zero,
- [Microsoft.IIS.Administration.Setup.Http]::HTTP_SERVICE_CONFIG_SSLCERT_INFO,
- [ref]$sslSet,
- $sslSetSize,
- [System.IntPtr]::Zero)
- }
-
- if ($result -ne $SUCCESS) {
- Write-Warning "Error setting Ssl Cert Configuration"
- throw [System.ComponentModel.Win32Exception] $([System.int32]$result)
- }
- }
- finally {
- if ($hIp -ne $null) {
- $hIp.Free()
- $hIp = $null
- }
- if ($hCertBytes -ne $null) {
- $hCertBytes.Free()
- $hCertBytes = $null
- }
- TerminateHttpSys| Out-Null
- }
-}
-
-InitializeInterop
-switch ($Command)
-{
- "Add-SslBinding"
- {
- return Add-SslBinding $IpEndPoint $Certificate $AppId
- }
- "Delete-SslBinding"
- {
- return Delete-SslBinding $IpEndpoint
- }
- "Get-SslBinding"
- {
- return Get-SslBinding $IpEndpoint
- }
- default
- {
- throw "Unknown command"
- }
-}
\ No newline at end of file
diff --git a/src/Servers/IIS/tools/installancm.ps1 b/src/Servers/IIS/tools/installancm.ps1
deleted file mode 100644
index b54a830d0e..0000000000
--- a/src/Servers/IIS/tools/installancm.ps1
+++ /dev/null
@@ -1,471 +0,0 @@
-<#
-.SYNOPSIS
- Installs asnetcore to IISExpress and IIS directory
-.DESCRIPTION
- Installs asnetcore to IISExpress and IIS directory
-.PARAMETER Rollback
- Default: $false
- Rollback the updated files with the original files
-.PARAMETER ForceToBackup
- Default: $false
- Force to do the initial backup again (this parameter is meaningful only when you want to replace the existing backup file)
-.PARAMETER Extract
- Default: $false
- Search ANCM nugetfile and extract the file to the path of the ExtractFilesTo parameter value
-.PARAMETER PackagePath
- Default: $PSScriptRoot\..\..\artifacts
- Root path where ANCM nuget package is placed
-.PARAMETER ExtractFilesTo
- Default: $PSScriptRoot\..\..\artifacts"
- Output path where aspentcore.dll file is extracted
-
-Example:
- .\installancm.ps1 "C:\Users\jhkim\AppData\Local\Temp\ihvufnf1.atw\ancm\Debug"
-
-#>
-[cmdletbinding()]
-param(
- [Parameter(Mandatory=$false, Position = 0)]
- [string] $ExtractFilesTo="$PSScriptRoot\..\artifacts\build\AspNetCore\bin\Debug",
- [Parameter(Mandatory=$false, Position = 1)]
- [string] $PackagePath="$PSScriptRoot\..\artifacts\build",
- [Parameter(Mandatory=$false)]
- [switch] $Rollback=$false,
- [Parameter(Mandatory=$false)]
- [switch] $ForceToBackup=$false,
- [Parameter(Mandatory=$false)]
- [switch] $Extract=$false
-)
-
-function Get-ANCMNugetFilePath() {
-
- $NugetFilePath = Get-ChildItem $PackagePath -Recurse -Filter Microsoft.AspNetCore.AspNetCoreModule*.nupkg | Select-Object -Last 1
- return ($NugetFilePath.FullName)
-}
-
-function Check-TargetFiles() {
- $functionName = "Check-TargetFiles"
- $LogHeader = "[$ScriptFileName::$functionName]"
- $result = $true
-
- if (-not $isIISExpressInstalled -and -not $isIISInstalled)
- {
- Say ("$LogHeader Both IIS and IISExpress does not have aspnetcore.dll file")
- $result = $false
- }
-
- if ($isIISExpressInstalled)
- {
- if (-not (Test-Path $aspnetCorex64To))
- {
- Say ("$LogHeader Error!!! Failed to find the file $aspnetCorex64To")
- $result = $false
- }
- if (-not (Test-Path $aspnetCoreSchemax64To))
- {
- Say ("$LogHeader Error!!! Failed to find the file $aspnetCoreSchemax64To")
- $result = $false
- }
- if ($is64BitMachine)
- {
- if (-not (Test-Path $aspnetCoreWin32To))
- {
- Say ("$LogHeader Error!!! Failed to find the file $aspnetCoreWin32To")
- $result = $false
- }
- if (-not (Test-Path $aspnetCoreSchemaWin32To))
- {
- Say ("$LogHeader Error!!! Failed to find the file $aspnetCoreSchemaWin32To")
- $result = $false
- }
- }
- }
-
- if ($isIISInstalled)
- {
- if (-not (Test-Path $aspnetCorex64IISTo))
- {
- Say ("$LogHeader Error!!! Failed to find the file $aspnetCorex64IISTo")
- $result = $false
- }
- if (-not (Test-Path $aspnetCoreSchemax64IISTo))
- {
- Say ("$LogHeader Error!!! Failed to find the file $aspnetCoreSchemax64IISTo")
- $result = $false
- }
- if ($is64BitMachine)
- {
- if (-not (Test-Path $aspnetCoreWin32IISTo))
- {
- Say ("$LogHeader Error!!! Failed to find the file $aspnetCoreWin32IISTo")
- $result = $false
- }
- }
- }
-
- return $result
-}
-
-function Check-ExtractedFiles() {
- $functionName = "Check-ExtractedFiles"
- $LogHeader = "[$ScriptFileName::$functionName]"
- $result = $true
-
- if (-not (Test-Path $aspnetCorex64From))
- {
- Say ("$LogHeader Error!!! Failed to find the file $aspnetCorex64From")
- $result = $false
- }
- if (-not (Test-Path $aspnetCoreWin32From))
- {
- Say ("$LogHeader Error!!! Failed to find the file $aspnetCoreWin32From")
- $result = $false
- }
- if (-not (Test-Path $aspnetCoreSchemax64From))
- {
- Say ("$LogHeader Error!!! Failed to find the file $aspnetCoreSchemax64From")
- $result = $false
- }
- if (-not (Test-Path $aspnetCoreSchemaWin32From))
- {
- Say ("$LogHeader Error!!! Failed to find the file $aspnetCoreSchemaWin32From")
- $result = $false
- }
- return $result
-}
-
-function Extract-ANCMFromNugetPackage() {
- $result = $true
-
- $functionName = "Extract-ANCMFromNugetPackage"
- $LogHeader = "[$ScriptFileName::$functionName]"
-
- $backupAncmNugetFilePath = Join-Path $TempExtractFilesTo (get-item $ancmNugetFilePath).Name
- if (Test-Path $backupAncmNugetFilePath)
- {
- Say ("$LogHeader Found backup file at $backupAncmNugetFilePath")
- if ((get-item $ancmNugetFilePath).LastWriteTime -eq (get-item $backupAncmNugetFilePath).LastWriteTime)
- {
- if (Check-ExtractedFiles)
- {
- Say ("$LogHeader Skip to extract ANCM files because $ancmNugetFilePath is matched to the backup file $backupAncmNugetFilePath.")
- return $result
- }
- }
- }
-
- Add-Type -Assembly System.IO.Compression.FileSystem
- if (Test-Path $TempExtractFilesTo)
- {
- remove-item $TempExtractFilesTo -Force -Recurse -Confirm:$false | out-null
- }
- if (Test-Path $TempExtractFilesTo)
- {
- Say ("$LogHeader Error!!! Failed to delete $TempExtractFilesTo")
- $result = $false
- return $result
- }
- else
- {
- new-item -Type directory $TempExtractFilesTo | out-null
- }
- if (-not (Test-Path $TempExtractFilesTo))
- {
- Say ("$LogHeader Error!!! Failed to create $TempExtractFilesTo")
- $result = $false
- return $result
- }
-
- #
- Say ("$LogHeader Extract the ancm nuget file $ancmNugetFilePath to $TempExtractFilesTo ...")
- [System.IO.Compression.ZipFile]::ExtractToDirectory($ancmNugetFilePath, $TempExtractFilesTo)
-
- Say ("$LogHeader Create the backup file of the nuget file to $backupAncmNugetFilePath")
- copy-item $ancmNugetFilePath $backupAncmNugetFilePath
-
- return $result
-}
-
-function Update-ANCM() {
-
- $functionName = "Update-ANCM -Rollback:$" + $Rollback.ToString()
- $LogHeader = "[$ScriptFileName::$functionName]"
-
- if ($isIISExpressInstalled)
- {
- if ($is64BitMachine)
- {
- Say ("$LogHeader Start updating ANCM files for IISExpress for amd64 machine...")
- Update-File $aspnetCorex64From $aspnetCorex64To
- Update-File $aspnetCoreWin32From $aspnetCoreWin32To
- Update-File $aspnetCoreSchemax64From $aspnetCoreSchemax64To
- Update-File $aspnetCoreSchemaWin32From $aspnetCoreSchemaWin32To
- }
- else
- {
- Say ("$LogHeader Start updating ANCM files for IISExpress for x86 machine...")
- Update-File $aspnetCoreWin32From $aspnetCorex64To
- Update-File $aspnetCoreSchemaWin32From $aspnetCoreSchemax64To
- }
- }
- else
- {
- Say ("$LogHeader Can't find aspnetcore.dll for IISExpress. Skipping updating ANCM files for IISExpress")
- }
-
- if ($isIISInstalled)
- {
- if ($is64BitMachine)
- {
- Say ("$LogHeader Start updating ANCM files for IIS for amd64 machine...")
- Update-File $aspnetCorex64From $aspnetCorex64IISTo
- Update-File $aspnetCoreWin32From $aspnetCoreWin32IISTo
- Update-File $aspnetCoreSchemax64From $aspnetCoreSchemax64IISTo
- }
- else
- {
- Say ("$LogHeader Start updating ANCM files for IIS for x86 machine...")
- Update-File $aspnetCoreWin32IISFrom $aspnetCorex64IISTo
- Update-File $aspnetCoreSchemaWin32From $aspnetCoreSchemax64IISTo
- }
- }
- else
- {
- Say ("$LogHeader Can't find aspnetcore.dll for IIS. Skipping updating ANCM files for IIS server")
- }
-}
-
-function Update-File([string]$SourceFilePath, [string]$DestinationFilePath) {
-
- $Source = $SourceFilePath
- $Destination = $DestinationFilePath
-
- $BackupFilePath = $Destination + ".ancm_backup"
- if ($Rollback)
- {
- $Source = $BackupFilePath
- }
-
- $functionName = "Update-File -Rollback:$" + $Rollback.ToString()
- $LogHeader = "[$ScriptFileName::$functionName]"
-
- if ($ForceToBackup)
- {
- if (Test-Path $BackupFilePath)
- {
- $backupFileRemoved = $false
- if ( ((get-item $DestinationFilePath).CreationTime -gt (get-item $BackupFilePath).CreationTime) -and ((get-item $DestinationFilePath).CreationTime -gt (get-item $SourceFilePath).CreationTime) )
- {
- $backupFileRemoved = $true
- Say (' Delete the existing "$BackupFilePath" because "$DestinationFilePath" is newer than both "$BackupFilePath" and "$SourceFilePath"')
- Remove-Item $BackupFilePath -Force -Confirm:$false
- }
- else
- {
- Say-Verbose (' Skipping to delete the existing backupfile because "$DestinationFilePath" is not newer than $BackupFilePath"')
- }
- }
- if ($backupFileRemoved -and (Test-Path $BackupFilePath))
- {
- throw ("$LogHeader Can't delete $BackupFilePath")
- }
- }
-
- # Do the initial back up before updating file
- if (-Not (Test-Path $BackupFilePath))
- {
- Say (" Create a backup $BackupFilePath")
- Copy-Item $Destination $BackupFilePath -Force
-
- $fileMatched = $null -eq (Compare-Object -ReferenceObject $(Get-Content $Destination) -DifferenceObject $(Get-Content $BackupFilePath))
- if (-not $fileMatched)
- {
- throw ("$LogHeader File not matched!!! $Destination $BackupFilePath")
- }
- }
- if (-Not (Test-Path $BackupFilePath))
- {
- throw ("$LogHeader Can't backup $Source to $BackupFilePath")
- }
-
- # Copy file from Source to Destination if those files are different each other
- if (-Not (Test-Path $Destination))
- {
- throw ("$LogHeader Can't find $Destination")
- }
- $fileMatched = $null -eq (Compare-Object -ReferenceObject $(Get-Content $Source) -DifferenceObject $(Get-Content $Destination))
- if (-not $fileMatched)
- {
- Say (" Copying $Source to $Desting...")
- Copy-Item $Source $Destination -Force
-
- # check file is correctly copied
- $fileMatched = $null -eq (Compare-Object -ReferenceObject $(Get-Content $Source) -DifferenceObject $(Get-Content $Destination))
- if (-not $fileMatched)
- {
- throw ("$LogHeader File not matched!!! $Source $Destination")
- }
- else
- {
- Say-Verbose ("$LogHeader File matched!!! $Source to $Destination")
- }
- }
- else
- {
- Say (" Skipping $Destination that is already identical to $Source ")
- }
-}
-
-function Say($str) {
- Write-Host $str
-}
-
-function Say-Verbose($str) {
- Write-Verbose $str
-}
-
-#######################################################
-# Start execution point
-#######################################################
-
-$EXIT_FAIL = 1
-$EXIT_SUCCESS = 0
-
-$ScriptFileName = "installancm.ps1"
-$LogHeader = "[$ScriptFileName]"
-
-if ($Extract -and (-Not $Rollback))
-{
- if (-not (Test-Path $PackagePath))
- {
- Say ("$LogHeader Error!!! Failed to find the directory $PackagePath")
- exit $EXIT_FAIL
- }
-
- $ancmNugetFilePath = Get-ANCMNugetFilePath
- if (-not (Test-Path $ancmNugetFilePath))
- {
- Say ("$LogHeader Error!!! Failed to find AspNetCoreModule nupkg file under $PackagePath nor its child directories")
- exit $EXIT_FAIL
- }
-}
-
-if (-Not $Rollback)
-{
- if (-not (Test-Path $ExtractFilesTo))
- {
- Say ("$LogHeader Error!!! Failed to find the directory $ExtractFilesTo")
- exit $EXIT_FAIL
- }
-}
-
-$TempExtractFilesTo = $ExtractFilesTo + "\.ancm"
-$ExtractFilesRootPath = ""
-if ($Extract)
-{
- $ExtractFilesRootPath = $TempExtractFilesTo + "\ancm\Debug"
-}
-else
-{
- $ExtractFilesRootPath = $ExtractFilesTo
-}
-
-# Try with solution output path
-$aspnetCorex64From = $ExtractFilesRootPath + "\x64\aspnetcore.dll"
-$aspnetCoreWin32From = $ExtractFilesRootPath + "\Win32\aspnetcore.dll"
-$aspnetCoreSchemax64From = $ExtractFilesRootPath + "\x64\aspnetcore_schema.xml"
-$aspnetCoreSchemaWin32From = $ExtractFilesRootPath + "\Win32\aspnetcore_schema.xml"
-
-$aspnetCorex64To = "$env:ProgramFiles\IIS Express\aspnetcore.dll"
-$aspnetCoreWin32To = "${env:ProgramFiles(x86)}\IIS Express\aspnetcore.dll"
-$aspnetCoreSchemax64To = "$env:ProgramFiles\IIS Express\config\schema\aspnetcore_schema.xml"
-$aspnetCoreSchemaWin32To = "${env:ProgramFiles(x86)}\IIS Express\config\schema\aspnetcore_schema.xml"
-
-$aspnetCorex64IISTo = "$env:windir\system32\inetsrv\aspnetcore.dll"
-$aspnetCoreWin32IISTo = "$env:windir\syswow64\inetsrv\aspnetcore.dll"
-$aspnetCoreSchemax64IISTo = "$env:windir\system32\inetsrv\config\schema\aspnetcore_schema.xml"
-
-# if this is not solution output path, use nuget package directory structure
-if (-not (Test-Path $aspnetCorex64From))
-{
- $aspnetCorex64From = $ExtractFilesRootPath + "\runtimes\win7-x64\native\aspnetcore.dll"
- $aspnetCoreWin32From = $ExtractFilesRootPath + "\runtimes\win7-x86\native\aspnetcore.dll"
- $aspnetCoreSchemax64From = $ExtractFilesRootPath + "\aspnetcore_schema.xml"
- $aspnetCoreSchemaWin32From = $ExtractFilesRootPath + "\aspnetcore_schema.xml"
-
- $aspnetCorex64To = "$env:ProgramFiles\IIS Express\aspnetcore.dll"
- $aspnetCoreWin32To = "${env:ProgramFiles(x86)}\IIS Express\aspnetcore.dll"
- $aspnetCoreSchemax64To = "$env:ProgramFiles\IIS Express\config\schema\aspnetcore_schema.xml"
- $aspnetCoreSchemaWin32To = "${env:ProgramFiles(x86)}\IIS Express\config\schema\aspnetcore_schema.xml"
-
- $aspnetCorex64IISTo = "$env:windir\system32\inetsrv\aspnetcore.dll"
- $aspnetCoreWin32IISTo = "$env:windir\syswow64\inetsrv\aspnetcore.dll"
- $aspnetCoreSchemax64IISTo = "$env:windir\system32\inetsrv\config\schema\aspnetcore_schema.xml"
-}
-
-$is64BitMachine = $env:PROCESSOR_ARCHITECTURE.ToLower() -eq "amd64"
-$isIISExpressInstalled = Test-Path $aspnetCorex64To
-$isIISInstalled = Test-Path $aspnetCorex64IISTo
-
-# Check expected files are available on IIS/IISExpress directory
-if (-not (Check-TargetFiles))
-{
- Say ("$LogHeader Error!!! Failed to update ANCM files because AspnetCore.dll is not installed on IIS/IISExpress directory.")
- exit $EXIT_FAIL
-}
-
-if ($Extract)
-{
- # Extrack nuget package when $DoExtract is true
- if (-not (Extract-ANCMFromNugetPackage))
- {
- Say ("$LogHeader Error!!! Failed to extract ANCM file")
- exit $EXIT_FAIL
- }
-}
-
-# clean up IIS and IISExpress worker processes and IIS services
-Say ("$LogHeader Stopping w3wp.exe process")
-Stop-Process -Name w3wp -ErrorAction Ignore -Force -Confirm:$false
-
-Say ("$LogHeader Stopping iisexpress.exe process")
-Stop-Process -Name iisexpress -ErrorAction Ignore -Force -Confirm:$false
-
-$w3svcGotStopped = $false
-$w3svcWindowsServce = Get-Service W3SVC -ErrorAction Ignore
-if ($w3svcWindowsServce -and $w3svcWindowsServce.Status -eq "Running")
-{
- Say ("$LogHeader Stopping w3svc service")
- $w3svcGotStopped = $true
- Stop-Service W3SVC -Force -ErrorAction Ignore
- Say ("$LogHeader Stopping w3logsvc service")
- Stop-Service W3LOGSVC -Force -ErrorAction Ignore
-}
-
-if ($Rollback)
-{
- Say ("$LogHeader Rolling back ANCM files...")
-}
-else
-{
- Say ("Updating ANCM files...")
-}
-Update-ANCM
-
-# Recover w3svc service
-if ($w3svcGotStopped)
-{
- Say ("$LogHeader Starting w3svc service")
- Start-Service W3SVC -ErrorAction Ignore
- $w3svcServiceStopped = $false
-
- $w3svcWindowsServce = Get-Service W3SVC -ErrorAction Ignore
- if ($w3svcWindowsServce.Status -ne "Running")
- {
- Say ("$LogHeader Error!!! Failed to start w3svc service.")
- exit $EXIT_FAIL
- }
-}
-
-Say ("$LogHeader Finished!!!")
-exit $EXIT_SUCCESS
diff --git a/src/Servers/IIS/tools/stresstest.ps1 b/src/Servers/IIS/tools/stresstest.ps1
deleted file mode 100644
index 981c6fcf44..0000000000
--- a/src/Servers/IIS/tools/stresstest.ps1
+++ /dev/null
@@ -1,96 +0,0 @@
-##########################################################
-# NOTE:
-# For running test automation, following prerequisite required:
-#
-# 1. On Win7, powershell should be upgraded to 4.0
-# https://social.technet.microsoft.com/wiki/contents/articles/21016.how-to-install-windows-powershell-4-0.aspx
-# 2. url-rewrite should be installed
-# 3. makecert.exe tools should be available
-##########################################################
-
-# Replace aspnetcore.dll with the latest version
-copy C:\gitroot\AspNetCoreModule\artifacts\build\AspNetCore\bin\Release\x64\aspnetcore.dll "C:\Program Files\IIS Express"
-copy C:\gitroot\AspNetCoreModule\artifacts\build\AspNetCore\bin\Release\x64\aspnetcore.pdb "C:\Program Files\IIS Express"
-
-
-# Enable appverif for IISExpress.exe
-appverif /verify iisexpress.exe
-
-# Set the AspNetCoreModuleTest environment variable with the following command
-cd C:\gitroot\AspNetCoreModule\test\AspNetCoreModule.Test
-dotnet restore
-dotnet build
-$aspNetCoreModuleTest="C:\gitroot\AspNetCoreModule\test\AspNetCoreModule.Test\bin\Debug\net46"
-
-if (Test-Path (Join-Path $aspNetCoreModuleTest aspnetcoremodule.test.dll))
-{
- # Clean up applicationhost.config of IISExpress
- del $env:userprofile\documents\iisexpress\config\applicationhost.config -Confirm:$false -Force
- Start-Process "C:\Program Files\IIS Express\iisexpress.exe"
- Sleep 3
- Stop-Process -Name iisexpress
-
- # Create sites
- (1..50) | foreach { md ("C:\inetpub\wwwroot\AspnetCoreHandler_HelloWeb\foo" + $_ ) 2> out-null }
- (1..50) | foreach { copy C:\gitroot\AspNetCoreModule\test\StressTestWebRoot\web.config ("C:\inetpub\wwwroot\AspnetCoreHandler_HelloWeb\foo" + $_ ) }
- (1..50) | foreach {
- $path = ("C:\inetpub\wwwroot\AspnetCoreHandler_HelloWeb\foo" + $_ )
- $appPath = "/foo"+$_
- & "C:\Program Files\IIS Express\appcmd.exe" add app /site.name:"WebSite1" /path:$appPath /physicalPath:$path
- }
-
- <#(1..50) | foreach {
- $configpath = ("WebSite1/foo" + $_)
- $value = "C:\inetpub\wwwroot\AspnetCoreHandler_HelloWeb\foo" + $_ + ".exe"
- & "C:\Program Files\IIS Express\appcmd.exe" set config $configpath -section:system.webServer/aspNetCore /processPath:$value
- }
- (1..50) | foreach { copy C:\inetpub\wwwroot\AspnetCoreHandler_HelloWeb\foo.exe ("C:\inetpub\wwwroot\AspnetCoreHandler_HelloWeb\foo" + $_ +".exe") }
- (1..50) | foreach {
- $configpath = ("WebSite1/foo" + $_)
- $value = "%AspNetCoreModuleTest%\AspnetCoreApp_HelloWeb\foo" + $_ + ".exe"
- & "C:\Program Files\IIS Express\appcmd.exe" set config $configpath -section:system.webServer/aspNetCore /processPath:$value /apphostconfig:%AspNetCoreModuleTest%\config\applicationhost.config
-
- $value = "%AspNetCoreModuleTest%\AspnetCoreApp_HelloWeb\AutobahnTestServer.dll"
- & "C:\Program Files\IIS Express\appcmd.exe" set config $configpath -section:system.webServer/aspNetCore /arguments:$value /apphostconfig:%AspNetCoreModuleTest%\config\applicationhost.config
- }
- #>
-
- # Start IISExpress with running the below command
- &"C:\Program Files\Debugging Tools for Windows (x64)\windbg.exe" /g /G "C:\Program Files\IIS Express\iisexpress.exe"
-
-
- # 6. Start stress testing
- (1..10000) | foreach {
- if ($_ % 2 -eq 0)
- {
- ("Recycling backend only")
- stop-process -name dotnet
- (1..50) | foreach { del ("C:\inetpub\wwwroot\AspnetCoreHandler_HelloWeb\foo" + $_ + "\app_offline.htm") -confirm:$false -Force 2> out-null }
- stop-process -name dotnet
- }
- else
- {
- ("Recycling backedn + enabling appoffline ....")
- stop-process -name dotnet
- (1..50) | foreach { copy C:\gitroot\AspNetCoreModule\test\StressTestWebRoot\app_offline.htm ("C:\inetpub\wwwroot\AspnetCoreHandler_HelloWeb\foo" + $_ ) }
- }
- Sleep 1
-
- (1..10) | foreach {
- (1..50) | foreach {
- invoke-webrequest ("http://localhost:8080/foo"+$_) > $null
- }
- }
- }
-
-
- # Stress test idea
- # 1. Use Web Stress Tester
- # 2. Run stop-process -name dotnet
- # 3. Hit Q command to IISExpress console window
- # 4. Use app_offline.htm
- # 5. Save dummy web.config
-}
-
-// bp aspnetcore!FORWARDING_HANDLER::FORWARDING_HANDLER
-// bp aspnetcore!FORWARDING_HANDLER::~FORWARDING_HANDLER
\ No newline at end of file