Reputation: 1017
I am trying to deploy an asp.net core app on a server. I have done the following steps.
first thing is first, this is an Windows Server 2012 r2 environment that is a brand new virtual machine.
I get the console app opens says now listening on: http://localhost:5000 10. I go to http://localhost:5000 from chrome on this machine and get a 404 not found.
I do steps 7 8 9 and 10 on local machine which is windows 10 i get my application.
project.json
{
"dependencies": {
"AutoMapper": "5.1.1",
"EntityFramework": "6.1.3",
"Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0"
},
"tools": {
"BundlerMinifier.Core": "2.0.238",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"net452": {
"dependencies": {
"DataAccess": {
"target": "project"
},
"Models": {
"target": "project"
}
}
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"Areas/**/Views",
"appsettings.json",
"web.config"
]
},
"runtimes": {
"win10-x64": {},
"osx.10.11-64": {}
},
"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
configure from startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
Mapper.Initialize(config =>
{
/*View Models*/
config.CreateMap<Permit, PermitViewModel>().ReverseMap();
config.CreateMap<PermitType, PermitTypeViewModel>().ReverseMap();
config.CreateMap<Property, PropertyViewModel>().ReverseMap();
config.CreateMap<Region, RegionViewModel>().ReverseMap();
config.CreateMap<State, StateViewModel>().ReverseMap();
config.CreateMap<User, UserViewModel>().ReverseMap();
/*Dtos*/
config.CreateMap<Permit, PermitDto>().ReverseMap();
config.CreateMap<Property, PropertyDto>().ReverseMap();
config.CreateMap<Region, RegionDto>().ReverseMap();
config.CreateMap<State, StateDto>().ReverseMap();
config.CreateMap<User, UserDto>().ReverseMap();
});
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseApplicationInsightsRequestTelemetry();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseApplicationInsightsExceptionTelemetry();
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
program.cs
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
my goal is to have this run on iis.
UPDATE
Software: Microsoft Internet Information Services 8.5
Version: 1.0
Date: 2016-12-06 23:49:44
Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus
sc-win32-status time-taken 2016-12-06 23:49:44 fe80::9c6d:a91b:42c:82ea%12 OPTIONS / - 80 - fe80::c510:a062:136b:abe9%12 DavClnt - 200 0 0 1139 2016-12-06 23:49:47 fe80::9c6d:a91b:42c:82ea%12 OPTIONS /website - 80 - fe80::c510:a062:136b:abe9%12 Microsoft-WebDAV-MiniRedir/10.0.14393 - 200 0 0 46 2016-12-06 23:49:47 fe80::9c6d:a91b:42c:82ea%12 PROPFIND /website - 80 - fe80::c510:a062:136b:abe9%12 Microsoft-WebDAV-MiniRedir/10.0.14393 - 404 0 2 62 2016-12-06 23:49:47 fe80::9c6d:a91b:42c:82ea%12 PROPFIND /website - 80 - fe80::c510:a062:136b:abe9%12 Microsoft-WebDAV-MiniRedir/10.0.14393 - 404 0 2 62
this is the log message that i get
web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
-->
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
Upvotes: 8
Views: 19700
Reputation: 2900
Please check "platform": "anycpu"
in platform part:
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
and
"buildOptions": {
"platform": "anycpu",
"emitEntryPoint": true,
"preserveCompilationContext": true
},
Upvotes: 3
Reputation: 5101
If I am not mistaking, your project.json has no reference to asp.NET-core, but to the full framework:
"frameworks": {
"net452": {
"dependencies": {
"DataAccess": {
"target": "project"
},
"Models": {
"target": "project"
}
}
}
},
I think you are missing this somewhere to target the .NETCore :)
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
Upvotes: 0
Reputation: 2281
This is an issue that would really benefit from more documentation. This is just how I do it and I am not saying this is the only way.
1.Make sure you have the dotnetcore hosting installed
2.Create an app pool that targets "no managed code"
3.Create a website that uses that app pool ( this is where you define your IP Address and Port that IIS will listen on)
4.Publish a web deploy package (Visual Studio) ( which will give you a zip folder)
5.Move that zip folder to the server
6.Go to your website that you created and right click on the website (make sure the site is stopped)
7.I can't remember the exact option but it is something to the effect of "Manage Website" You should get another menu that gives you the option to Import
8.Click it and browse for that zip folder You can set up other options
9.Once that is done start the website again
10.Then you should be able to go to your app in a browser using the IP Address that was configured for the website in IIS
Upvotes: 2