1

I asked a question here on how to ensure the correct version of dotnet is included in the build.

How I am wondering whether the version is still not getting deployed. What would I be looking for in the deployed files to tell?

Deployment does include the following files

52,816 dotnet-aspnet-codegenerator-design.dll 689,584 Microsoft.CodeAnalysis.CSharp.Workspaces.dll 2,624,944 Microsoft.CodeAnalysis.Workspaces.dll 23,632 Microsoft.VisualStudio.Web.CodeGeneration.Contracts.dll 73,296 Microsoft.VisualStudio.Web.CodeGeneration.Core.dll 35,408 Microsoft.VisualStudio.Web.CodeGeneration.dll 69,200 Microsoft.VisualStudio.Web.CodeGeneration.EntityFrameworkCore.dll 28,752 Microsoft.VisualStudio.Web.CodeGeneration.Templating.dll 34,896 Microsoft.VisualStudio.Web.CodeGeneration.Utils.dll 157,776 Microsoft.VisualStudio.Web.CodeGenerators.Mvc.dll

When I login to the machine the code is deployed on and type

dotnet .\myapi.dll  

the error is

It was not possible to find any compatible framework version
The specified framework 'Microsoft.AspNetCore.App', version '2.1.5' was not found.
  - Check application dependencies and target a framework version installed at:
      C:\Program Files\dotnet\
  - Installing .NET Core prerequisites might help resolve this problem:
      http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
  - The .NET Core framework and SDK can be installed from:
      https://aka.ms/dotnet-download

Browsing to the site url gives

HTTP Error 502.5 - Process Failure

Common causes of this issue:
The application process failed to start
The application process started but then stopped
The application process started but failed to listen on the configured port

Troubleshooting steps:
Check the system event log for error messages
Enable logging the application process' stdout messages
Attach a debugger to the application process and inspect

For more information visit: https://go.microsoft.com/fwlink/?LinkID=808681

And the event log shows

failed to start process with commandline 'dotnet .\myapi.dll', ErrorCode = '0x80004005 : 80008096.

How do I ensure dotnet is deployed?

[Update]

I see that c:\program files\dotnet.exe is version 2.1.26919.1

However I have installed .Net Core Runtime 2.1.5 (x64) I can tell that it is installed because when I re-run the installer it asks whether I want to repair or uninstall.

I suppose that since the api is running under IIS it does not need dotnet.exe ?

The machine is running Windows 2012 Server R2

Kirsten
  • 15,730
  • 41
  • 179
  • 318
  • 1
    please use `dotnet run` instead of `dotnet`. It will try to resolve nuget dependencies before build and run your compiled DLL. documentation link: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-run?tabs=netcore21 – Eriawan Kusumawardhono Oct 30 '18 at 07:05
  • Thats it! When I ran that on the deployment machine it said Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 And when I went to the URL it installed SDK 2.1.403 ( Care to write up the answer?) – Kirsten Oct 30 '18 at 10:09

3 Answers3

3

Just posting this in case it helps someone. I was hitting this exact error attempting to deploy a regular .Net site using ASP.Net Core on IIS. In my case .Net was installed, but my site was throwing a 500 Internal server error and in the Event log I was showing "failed to start process with commandline 'dotnet .\myapi.dll'". It ended up being my web.config file, which Visual Studio had the line starting like:

<aspNetCore processPath="dotnet" arguments=".\myapi.dll"

This ended up being the problem, this is how you would launch a .Net Core site. But I was targeting regular .Net. So my web.config needed to be:

<aspNetCore processPath=".\myapi.exe" arguments=".\myapi.dll"

Before finding this I had attempted to install .Net Core runtimes, and SDK, both of those ended up morphing the error into a 500.19 Internal Server Error with error code 0x8007000d. This indicated a malformed XML in my web.config or AppHost (IIS). Neither of those files had XML syntax issues. This particular error was caused from having removed the .Net Core Hosting Bundle. You need to have the hosting bundle installed for your server to recognize the "aspNetCore" tag. Once the hosting bundle was installed and the web.config change made I was running.

Hope that helps someone. This was the first search result I hit beginning to debug.

mminneman
  • 426
  • 3
  • 7
1

When I ran

dotnet run .\myapi.dll

I got

Did you mean to run dotnet SDK commands?
Please install dotnet SDK from: go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

when I went to the URL it installed SDK 2.1.403

which worked.

Kirsten
  • 15,730
  • 41
  • 179
  • 318
0

I had to "Repair" .Net Core 2.1 Windows Server Hosting to get rid of this error.

Robert Pouleijn
  • 399
  • 2
  • 15