web-dev-qa-db-de.com

Die Implementierung von Asp.net Core funktioniert nicht auf dem Server, sondern auf dem Computer

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.

  1. erstellen Sie die VM
  2. aktualisieren Sie alle MS-Updates
  3. fügen Sie diese Rolle hinzu
  4. stellen Sie sicher, dass asp.net 3.5 und 4.5 auf der Maschine installiert sind
  5. stellen Sie sicher, dass die http-Umleitung und der statische Inhalt installiert sind
  6. installieren Sie das .net-Kernpaket 
  7. veröffentlichung von eigenständigen Apps aus Visual Studio (Projektname Web)
  8. fügen Sie dies einem Ordner auf dem Server hinzu.
  9. versuchen Sie es mit web.exe

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>
7
JamTay317

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
},
3
Elnaz

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

2
Patrick Mcvay

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"
},
0
Jean