ho un web.config lavora come illustrato di seguito:ASP.net nucleo 1.0 web.config viene sovrascritto causando eccezioni CGI
<?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="dotnet" arguments=".\Example.dll" stdoutLogEnabled="false" stdoutLogFile="\\?\%home%\LogFiles\stdout" forwardWindowsAuthToken="false" />
</system.webServer>
</configuration>
Ma in qualche modo lo studio visivo sta aggiornando il mio web.config per:
<?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="\\?\%home%\LogFiles\stdout" forwardWindowsAuthToken="false" />
</system.webServer>
</configuration>
Questo funziona in Visual Studio tramite i menu di pubblicazione (e funziona una volta distribuito su un'app Web blu). Se tuttavia utilizzo la CLI dotnet come dotnet publish, non funziona poiché mantiene web.config con le variabili:% LAUNCHER_PATH% e% LAUNCHER_ARGS% invece del mio desiderato: dotnet e. \ Example.dll.
Nota: Il mio server di build non inquina il web.config quando si utilizza il ripristino di dotnet e la creazione di dotnet tramite la riga di comando. Né quando si usa MSBuild per costruire il mio sln. Ho localmente studio visivo 2015 e sul mio server di build e ho verificato che le mie versioni da riga di comando corrispondano per cli "dotnet".
Come posso non contrastare Visual Studio ripristinando il mio web.config prima di ogni commit? Sto chiaramente facendo qualcosa di sbagliato che dovrebbe essere una facile soluzione di configurazione?
Aggiornamento:
Startup.cs
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
Appsettings.json
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
Program.cs
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
Project.json
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true,
"exclude": [
"wwwroot",
"typings",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
]
},
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
}
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-preview2-final",
"imports": "portable-net45+win8+netstandard1.6"
},
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview2-final",
"imports": "portable-net45+win8+netstandard1.6"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"netstandard1.4",
"dnxcore50"
],
"dependencies": {
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"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.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
"Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.0",
"Microsoft.AspNetCore.Hosting": "1.0.0",
"System.ServiceModel.Primitives": "4.1.0",
"System.ServiceModel.Http": "4.1.0",
"System.Private.ServiceModel": "4.1.0",
"Presentation.Common": "*",
"System.Runtime": "4.1.0",
"System.Runtime.Numerics": "4.0.1",
"SharedContract": "*"
}
}
},
"runtimes": {
"win10-x64": {},
"win10-x86": {},
"win8-x64": {},
"win8-x86": {}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config"
]
},
"scripts": {
"prepublish": [ "npm install", "gulp rebuild", "gulp min" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
},
"devDependencies": {
"gulp": "^3.9.1",
"gulp-clean": "^0.3.2",
"gulp-concat": "^2.6.0",
"gulp-less": "3.0.2",
"gulp-tsc": "^1.1.5",
"gulp-typescript": "^2.13.1",
"lite-server": "^2.2.0",
"path": "^0.12.7",
"rimraf": "2.3.2",
"typescript": "^1.8.10",
"typings": "^0.8.1"
}
}
Da allora ho appreso che succede quando faccio clic su run in visual studio per visualizzare il sito Web localmente. Ancora non sono sicuro di come risolvere questo ancora. – Dessus