web-dev-qa-db-ja.com

Asp.netコア展開はサーバーでは機能しませんが、マシンでは機能します

サーバーにasp.netコアアプリを展開しようとしています。次の手順を実行しました。

まず最初に、これはまったく新しい仮想マシンであるWindows Server 2012r2環境です。

  1. vMを構築する
  2. すべてのms更新を更新します
  3. iISの役割を追加
  4. asp.net3.5および4.5がマシンにインストールされていることを確認します
  5. httpリダイレクトと静的コンテンツがインストールされていることを確認します
  6. .netコアバンドルをインストールします
  7. visual Studioから自己完結型アプリを公開する(プロジェクト名Web)
  8. これをサーバー上のフォルダーに追加します。
  9. web.exeから実行してみてください

コンソールアプリが開き、リッスンしていると表示されます: http:// localhost:50 10. http:// localhost:50 from chromeを実行すると、404が見つかりません。

私はWindows10であるローカルマシンでステップ789と10を実行し、アプリケーションを取得します。

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%" ]
      }
    }

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();
        }

私の目標は、これをiisで実行することです。

[〜#〜]更新[〜#〜]

ソフトウェア:Microsoft Internet Information Services 8.5

バージョン:1.0

日付:2016-12-06 23:49:44

フィールド:日時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オプション/ 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

これは私が受け取るログメッセージです

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

チェックしてください "platform": "anycpu"プラットフォーム部分:

"Microsoft.NETCore.App": {
  "version": "1.0.0",
  "type": "platform"
},

そして

 "buildOptions": {
   "platform": "anycpu",
   "emitEntryPoint": true,
   "preserveCompilationContext": true
},
3
Elnaz

これは、より多くのドキュメントから本当に恩恵を受ける問題です。これは私がそれを行う方法であり、これが唯一の方法であると言っているわけではありません。

1.dotnetcoreホスティングがインストールされていることを確認します

2.「マネージコードなし」を対象とするアプリプールを作成します

3.そのアプリプールを使用するWebサイトを作成します(ここで、IISがリッスンする)IPアドレスとポートを定義します)

4. Webデプロイパッケージ(Visual Studio)を公開します(Zipフォルダーが提供されます)

5.そのZipフォルダーをサーバーに移動します

6.作成したWebサイトに移動し、Webサイトを右クリックします(サイトが停止していることを確認してください)

7.正確なオプションを思い出せませんが、「ウェブサイトの管理」の効果があります。インポートするオプションを提供する別のメニューが表示されます。

8.それをクリックして、そのZipフォルダを参照します。他のオプションを設定できます

9.それが終わったら、ウェブサイトを再開します

10.次に、IISのWebサイト用に構成されたIPアドレスを使用して、ブラウザーでアプリにアクセスできるようになります。

2
Patrick Mcvay

私が誤解していない場合、project.jsonにはasp.NET-coreへの参照はありませんが、完全なフレームワークへの参照があります。

"frameworks": {
    "net452": {
      "dependencies": {
        "DataAccess": {
          "target": "project"
        },
        "Models": {
          "target": "project"
        }
      }
    }
  },

.NETCoreをターゲットにするためにこれがどこかに欠けていると思います:)

"Microsoft.NETCore.App": {
  "version": "1.0.0",
  "type": "platform"
},
0
Jean