Ich versuche, eine asp.net-Kern-App auf einem Server bereitzustellen. Ich habe die folgenden Schritte gemacht.
zunächst einmal ist dies eine Windows Server 2012 R2-Umgebung, bei der es sich um eine brandneue virtuelle Maschine handelt.
Ich bekomme die Konsolen-App, die jetzt mithören soll: http: // localhost: 5000 10. Ich gehe zu http: // localhost: 5000 von Chrome auf diesem Computer und erhalte eine 404-Adresse, die nicht gefunden wurde.
Ich mache die Schritte 7, 8, 9 und 10 auf einem lokalen Rechner, der Windows 10 ist. Ich bekomme meine Anwendung.
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%" ]
}
}
konfiguriere von 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();
}
mein Ziel ist es, dieses Programm auf iis laufen zu lassen.
UPDATE
Software: Microsoft Internet Information Services 8.5
Version: 1.0
Datum: 2016-12-06 23:49:44
Felder: Datum Uhrzeit s-ip cs-Methode cs-uri-stem cs-uri-query s-port cs-Benutzername c-ip cs (Benutzer-Agent) cs (Referer) sc-status sc-substatus
sc-win32-Status Zeitl. 2016-12-06 23:49:44 fe80 :: 9c6d: a91b: 42c: 82ea% 12 OPTIONEN/- 80 - fe80 :: c510: a062: 136b: abe9% 12 DavClnt - 200 0 0 1139 06.12.2016 23:49:47 fe80 :: 9c6d: a91b: 42c: 82ea% 12 OPTIONEN/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
dies ist die Log-Nachricht, die ich bekomme
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>
Bitte überprüfen Sie "platform": "anycpu"
im Plattformteil:
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
und
"buildOptions": {
"platform": "anycpu",
"emitEntryPoint": true,
"preserveCompilationContext": true
},
Dies ist ein Problem, das wirklich von mehr Dokumentation profitieren würde. So mache ich es und ich sage nicht, dass dies der einzige Weg ist.
1. Stellen Sie sicher, dass Sie das Dotnetcore-Hosting installiert haben
2.Erstellen eines App-Pools, der auf "keinen verwalteten Code" abzielt
3.Erstellen Sie eine Website, die diesen App-Pool verwendet (hier definieren Sie Ihre IP-Adresse und den Port, den IIS überwacht).
4.Veröffentlichen eines Webbereitstellungspakets (Visual Studio) (mit dem Sie einen ZIP-Ordner erhalten)
5. Verschieben Sie diesen ZIP-Ordner auf den Server
6. Gehen Sie zu Ihrer Website, die Sie erstellt haben, und klicken Sie mit der rechten Maustaste auf die Website (stellen Sie sicher, dass die Website angehalten ist).
7.Ich kann mich nicht an die genaue Option erinnern, aber es hat etwas mit dem Effekt von "Website verwalten" zu tun. Sie sollten ein anderes Menü erhalten, in dem Sie die Option zum Importieren erhalten
8.Klicken Sie darauf und suchen Sie nach diesem ZIP-Ordner. Sie können andere Optionen einrichten
9.Sobald dies erfolgt ist, starten Sie die Website erneut
10. Dann sollten Sie in der Lage sein, Ihre App über die IP-Adresse, die für die Website in IIS konfiguriert wurde, in einem Browser aufzurufen
Wenn ich mich nicht irre, hat Ihr project.json keinen Hinweis auf asp.NET-core, sondern auf das vollständige Framework:
"frameworks": {
"net452": {
"dependencies": {
"DataAccess": {
"target": "project"
},
"Models": {
"target": "project"
}
}
}
},
Ich denke, Sie vermissen dies irgendwo als Ziel für .NETCore :)
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},