none
.NET Framework 4.8 support on Cloud Service roles? RRS feed

  • Question

  • Hello,

    now that .NET Framework 4.8 is out for a few months, I thought that MS already supports it in all its infrastructure. But how I was wrong!

    We have a solution in VS2019 that currently targets .NET 4.6.2 and all is working well. I managed to upgrade it to .NET 4.8, and after some struggling I got it to compile without warnings on development PC. This solution is built by an Azure Devops build agent, there it also built fine, and the resulting package (.cspkg file) is deployed automatically at the end of the build process, to the cloud service.

    Now the problem is that .NET 4.8 is not installed on the cloud service by default. So I added a startup task to download the installer and run it - this is recommended by MS. The installer is run but it gets stuck (I can see it in Task manager when I remotely connect to the cloud role). At this time, when .NET 4.8 is not installed, windows event log on the role was filled by warnings from IIS complaining that the website targets .NET 4.8 that is not installed.

    When I run the installer manually, it gets stuck for a few minutes and then displays a nonsense error: 0x800713ac Asia. There is no solution on the internet for this error. Apart from restarting and trying again.

    I then restarted the role, and then tried to run the installer again. This time it went successfully and installed, and the deployed website ran OK. However, restarting freshly created role and then reinstalling is unworkable in real-world scenario.

    The role was with "os family = 6" = windows server 2019. Currently I reverted the code back to .NET 4.6.2 but I would like to keep the .NET 4.8.

    My question is, when MS finally starts supporting its own tools in its own infrastructure? And "soon" isn't an answer! This isn't the first time that something is released with all bells and whistles, but the infrastructure such as Azure cloud services, or build servers, are one version behind for a long time. So disappointing...

    Tuesday, November 19, 2019 7:32 AM

Answers

  • After working offline, I don't have a definitive date on when .NET 4.8 will be included. However the Cloud Services team does work on keeping the images updated every couple months. Looking at the past record, we have provided updates to the images every 1-2 months. So it should not be very long before we have .NET 4.8 installed by default. But again, we don't have any precise dates to commit to. 

    I know it's not the perfect answer however it is what we are able to share at this time. 

    Friday, November 22, 2019 8:40 PM
    Moderator

All replies

  • I assume you have following this document for the startup tasks which does include .NET 4.8
    https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-dotnet-install-dotnet

    You are correct that we don't have any OS families that come out the box with 4.8 yet. 

    Cloud Services are a bit of a tricky topic. They are essentially the last of Azure Services that are still in the "Classic" model while we wait to hear on the next version or migration plan away from them. This means in general engineering is not developing any new features at this time. Obviously they release new OS versions with some updates so they are not completely obsolete, but as you also noticed they are not always up to par with the latest and greatest bells and whistles. 

    I am not fully sure why you were getting the error when installing .NET 4.8. Sounds like you did get it installed which would make sense as I know it is supported. 

    If this error was something you are seeing consistently, we could absolutely have technical support look into what the issue is. Otherwise it might have just been a transient error that cleared out when you restarted the role. 

    I know this is not likely the ideal answer you were hoping for but that is where we are at when it comes to Cloud Services. 

    Tuesday, November 19, 2019 7:04 PM
    Moderator
  • Hello, and thank you for the answer.

    After reverting the changes, I made the check-in with the changes again, but this time with osFamily = 5 in the service definition file. After deploying the package, roles with windows server 2016 (instead of 2019) were created.

    But it didn't help. Again the .NET framework 4.8 was not installed. I saw it in task manager that the installer was running, but it ended after few minutes without doing anything. Then I ran the exe file directly. Installation was stuck on ".NET Framework 4.8" for like 20 minutes, then was successful. But the website still wasn't working, because the installer said "You must restart the computer" so I restarted. After the restart, the website was working and everything was correct.

    Yes, I think this is a problem that should be fixed on MS side, but I tried writing the post in this forum first before contacting Azure support directly. Plus, it may be beneficial to other users having the same problem. Should I file a support request via the Azure portal, or can you contact someone to look at this thread and respond here?

    Wednesday, November 20, 2019 7:29 AM
  • I forgot to mention - you wrote that Cloud services are now legacy and will not be upgraded anymore. So what should we use instead of them?
    Wednesday, November 20, 2019 8:10 AM
  • Ah I see. So essentially a reboot is required to apply the changes. From that angle, I don't think there is much you can do on your end unless we release an OS series that has 4.8 installed by default. I will reach out to a few folks online to see if there are any plans on doing that in the near future. Not 100% how quickly I will get a response but I am sure I can find someone :) 

    As per the second part regarding Cloud Services being legacy, as mentioned no new features are being developed for Classic resources. So in some resources like classic VMs the obvious choice is to move to ARM VMs. However there is no a perfect migration path for cloud service users. The two obvious choices would be to move to VMs (as Cloud Services runs on VMs) or Web App/ App Services. Both options have their upsides and downsides. 

    Seeing as all other services that started as Classic eventually got an ARM replacement, we could guess that Cloud Services would be no different. However as of now I have not seen anything hinting at such. One thing to note is that when a classic resource has been deprecated, a new alternative has been given as well as ample time for users to migrate (Generally 2+ years)

    So my suggestion would be to utilize Web Apps/ App Services if possible as Microsoft handles the infrastructure setup and all you need to do is upload your code. This makes managing the sites simple. If that doesn't work, you can consider VMs. Otherwise, continue to use cloud services and just know that you will at times hit some road blocks such as not having the latest .NET installed in which case you would need to use a work around such as manually installing it yourself. The plus side of that work around route is once you have installed it, your're done. Assuming you are not tearing down the cloud service resources often the overhead is not too bad. 

    Again, likely not the ideal answer you were looking for but is the current status of things. I have no doubt we will get an ideal replacement for cloud services at some point but for now users can continue the classic cloud services route. 

    Thursday, November 21, 2019 12:01 AM
    Moderator
  • Thanks again for the response and hints.

    I already tried installing .NET 4.8 as part of startup task, and forcing a restart at the end, but for some reason, after the restart .NET was still on version 4.6.2. But when I ran the installer manually, it was installed correctly after the restart.

    I would be very grateful if you could reach to someone responsible for the Cloud Services, so that .NET 4.8 comes pre-installed with it because it's not possible to install it as part of startup task.

    Currently we decided to stop wasting effort on this, but will keep checking periodically if the situation gets any better.

    Thursday, November 21, 2019 7:01 AM
  • I forgot to mention - you wrote that Cloud services are now legacy and will not be upgraded anymore. So what should we use instead of them?

    Hi,

    We recently migrated our backend to app services, this have many differences with cloud services. This is some kind of hosting with muscles.

    we have some worker process used to email queue and the suggestion is use a logic apps.

    You need evaluated your software architectured and defined a new model based in this new products.

    I set the same "machine" 7 Gb of RAM but we feel the software a little bit more slow. We need do some code changes due a app services limits.


    Thursday, November 21, 2019 6:57 PM
  • We installed .NET framework 4.8 on our classic cloud service Guest OS 2019. However, this does not auto-install security patches for 4.8 since it is not the native version. Is there an estimate of when 4.8 be available pre-installed on Guest OS? 
    Friday, November 22, 2019 12:38 AM
  • @SE19 I merged your question to this thread as it is the same question. I am working offline to see if we have an ETA and will update this thread when I know more. 
    Friday, November 22, 2019 1:23 AM
    Moderator
  • After working offline, I don't have a definitive date on when .NET 4.8 will be included. However the Cloud Services team does work on keeping the images updated every couple months. Looking at the past record, we have provided updates to the images every 1-2 months. So it should not be very long before we have .NET 4.8 installed by default. But again, we don't have any precise dates to commit to. 

    I know it's not the perfect answer however it is what we are able to share at this time. 

    Friday, November 22, 2019 8:40 PM
    Moderator
  • It's good to know that the cloud services will be updated, so we will just wait with the .NET 4.8 upgrade. Thanks for your cooperation!
    Monday, November 25, 2019 6:56 AM