サーバーにasp.netコアアプリを展開しようとしています。次の手順を実行しました。
まず最初に、これはまったく新しい仮想マシンであるWindows Server 2012r2環境です。
コンソールアプリが開き、リッスンしていると表示されます: 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>
チェックしてください "platform": "anycpu"
プラットフォーム部分:
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
そして
"buildOptions": {
"platform": "anycpu",
"emitEntryPoint": true,
"preserveCompilationContext": true
},
これは、より多くのドキュメントから本当に恩恵を受ける問題です。これは私がそれを行う方法であり、これが唯一の方法であると言っているわけではありません。
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アドレスを使用して、ブラウザーでアプリにアクセスできるようになります。
私が誤解していない場合、project.jsonにはasp.NET-coreへの参照はありませんが、完全なフレームワークへの参照があります。
"frameworks": {
"net452": {
"dependencies": {
"DataAccess": {
"target": "project"
},
"Models": {
"target": "project"
}
}
}
},
.NETCoreをターゲットにするためにこれがどこかに欠けていると思います:)
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},