- IIS installed
- Windows authentication enabled
- Hostable Web Core enabled
- ASP.NET Core Module installed (https://go.microsoft.com/fwlink/?LinkId=817246)
There is a blog post to get up and running on Nano Server located at https://blogs.iis.net/adminapi/microsoft-iis-administration-on-nano-server.
- Open the project in Visual Studio as an Administrator and launch without debugging
- Open another instance of the project and run the tests located in the 'test' folder
- Tests can also be run with the CLI
- Run PowerShell as an Administrator
- Run the Publish.ps1 script located in the scripts directory
- <OutputDirectory>\setup\setup.ps1 Install -Verbose
- Navigate to https://manage.iis.net
- Click 'Get Access Token'
- Generate an access token and copy it to the clipboard
- Exit the access tokens window and return to the connection screen
- Paste the access token into the Access Token field of the connection screen
- Click 'Connect'
- Open the solution in VS 2015, which will automatically trigger a package restore
- Build the solution
- Run the solution (F5) so Visual Studio automatically generates required IIS Express files
- Using PowerShell, run the Configure-DevEnvironment.ps1 script in the scripts directory
var httpClientHandler = new HttpClientHandler()
{
Credentials = new NetworkCredential(userName, password, domain)
};
var apiClient = new HttpClient(httpClientHandler);
// Set access token for every request
apiClient.DefaultRequestHeaders.Add("Access-Token", "Bearer {token}");
var res = apiClient.GetAsync("https://localhost:55539/api/webserver/websites").Result;
if (res.StatusCode != HttpStatusCode.OK) {
HandleError(res);
return;
}
JArray sites = JObject.Parse(res.Content.ReadAsStringAsync().Result).Value<JArray>("websites");
var newSite = new {
name = "Contoso",
physical_path = @"C:\sites\Contoso",
bindings = new[] {
new {
port = 8080,
is_https = false,
ip_address = "*"
}
}
};
var res = apiClient.PostAsJsonAsync<object>("https://localhost:55539/api/webserver/websites", newSite).Result;
if (res.StatusCode != HttpStatusCode.Created) {
HandleError(res);
return;
}
JObject site = JObject.Parse(res.Content.ReadAsStringAsync().Result);