Are Service Fabric Katana with Web API Projects Supported By Microsoft? - azure

Regarding the switch from the Katana / Web API project template to ASP.NET Core for Service Fabric in Visual Studio 2017 that happened around April Vaclav Turecek made this comment on a post...
Katana was largely a prototype for what would become ASP.NET Core. Most, if not all, new feature work is going into ASP.NET Core, not Katana, and ASP.NET Core is officially supported by Microsoft.
Does this mean that the previous project template that used Katana / Owin is not officially supported by Microsoft?
How critical is it to migrate any Azure Service Fabric services we wrote using that old template to the new ASP.NET Core template?
Are the old Katana based services acceptable for production?
If we continue to use these old services should we expect any issues? For example, what about automated deployments with Team Services? ASP.NET Core doesn't require XML transforms for it's configurations during deployment but the older Service Fabric template uses web.config so it does. Can we expect this to cause headaches that migrating to ASP.NET would cure?

Related

Can't create new .NET Core 3.1 web app in Azure under Windows operating system

I spent many hours trying to find some way to create a new .NET Core 3.1 web app under Windows subscription. I found that if you pick up the Runtime stack as .Net Core 3.1 (LTS) the only option is to create an app under the Linux. I tried to play with different regions and Sku and sizes as well but for all cases, it's just the same. There is no option to configure App Insight during the creation time either when using the Linux.
The interesting thing is that when I created the Web App under .net core 3.0 marked as current I was able to deploy .net core 3.1 web app and it all worked including the app insights stuff.
My question: is it just a bug in the Azure UI that you cannot create .net core 3.1 web app under Windows or there is some specific reason behind it?
This option is going to be available once the deployment of .NET Core 3.1 has been rolled out to all AppServices worldwide. So far, this is only been completed for Linux.
https://github.com/Azure/app-service-announcements/issues/217
https://github.com/Azure/app-service-announcements-discussions/issues/129#issuecomment-565620039
Windows hosted App Service option will be enabled once world wide rollout of 3.1 SDK to App Service backend is complete.
Since Windows AppServices have all required runtimes installed, you can select 3.0 and try to deploy your app regardles of what the portal says. I was able to host a WebApi in west Europe this week with .NET Core 3.1, but from what I read that might just have been luck.
Deploying a self contained version is probably also possible from what I read in the linked Github issue.
edit2:Note that the accouncement talks about the SDK. As of the writing of this post, most of the app services have the 3.1 runtime installed, while the SDK will take a while longer.
edit:
You can also check manually if your AppService has the runtimes installed already:
Go to Kudu (https://myappservicename.scm.azurewebsites.net/)
Open the Debug console (e.g. CMD)
type in dotnet --list-runtimes
I had the same problem. I could not get windows selected in Azure.
What I did was let Visual Studio create the App in my App Services. (Note the app insights!)
When this profile finished creating I went into the created App in the Azure portal. Settings - Configuration and changed the stack from 4.7 to .Net Core (Sorry this is in dutch, I hope you can manage...)
And now I also had the standard documents available which I did not have creating it in Azure portal! I changed it to only have index as landing page :
After I did this the homepage of my website showed up. Hope this helps someone!

Can Application Insights be used with a Linux Web App running .NET Core 3 runtime?

I am adding an Azure Application Service Plan to my resource group. I'd like it to be a Linux Host for a .NET Core 3 Web API. Furthermore, I'd like to use Application Insights. However, when using the Azure Portal, the option to add Application Insights to a Linux .NET Core 3 application is greyed out. Does Application Insights not currently support. I have another Linux Web App that is using Node LTS as it's runtime and that allowed me to add Application Insights with no issue. Is there something special I need to do to add Application Insights to a .NET Core 3 Web API running in an Azure Linux Web App?
EDIT:
Here are some screenshots of what I am seeing
Code-less enablement of Application Insights for Asp.Net core is not yet supported for linux.
You need to do code-based enablement, which involves installing SDK nugets to your project as documented below:
https://learn.microsoft.com/en-us/azure/azure-monitor/app/asp-net-core
Update:
Linux support is added for .NET 6.0 onwards. Check doc:
https://learn.microsoft.com/azure/azure-monitor/app/azure-web-apps-net-core?tabs=Linux%2Cwindows
According to the docs, yes!
Supported scenarios The Application Insights SDK for ASP.NET Core can monitor your applications no matter where or how they run. If your
application is running and has network connectivity to Azure,
telemetry can be collected. Application Insights monitoring is
supported everywhere .NET Core is supported. Support covers:
Operating system: Windows, Linux, or Mac. Hosting method: In process
or out of process. Deployment method: Framework dependent or
self-contained. Web server: IIS (Internet Information Server) or
Kestrel. Hosting platform: The Web Apps feature of Azure App Service,
Azure VM, Docker, Azure Kubernetes Service (AKS), and so on. .NET Core
Runtime version: 1.XX, 2.XX, or 3.XX IDE: Visual Studio, VS Code, or
command line. Note
If you are using ASP.NET Core 3.0 along with Application Insights,
please use the 2.8.0 version or higher. This is the only version that
supports ASP.NET Core 3.0.
Auto-instrumentation for Application Insights for .NET Core apps is a high priority and work is planned to support the functionality. Stay tuned! Your feedback and patience are greatly appreciated! :)

How do I add .NET Core class library reference in Service Fabric App

How do I add .NET Core class library reference in Service Fabric App.
While I'm adding Class Library reference (.NET Core) in WebAPI app, showing Compatibility issues. Please find below What I did, using Visual Studio 2017.
File >> New Project >> Cloud >> Service Fabric Application
Name - FirstServiceFabricApp
Select a Template >> Stateless ASP.NET Core
Name - FirstStatelessAPI
Build and Run the Project. It works.
Although API Project Framework version is .NET Framework 4.5.2.
Added Class Library Project [builds on .NET Core 1.1] as reference into Stateless WebAPI Project. Showing compatibility issues-
Building the solution x64 platform.
My concerns are:
How do I take .NET Core Library reference in Stateless WebAPI Project [Service Fabric]
Should I go/develop with .NET Framework for Class Library which is compatible with Stateless WebAPI project.
I did Azure AD Authentication/Microsoft Graph in Azure APP Service, but never did for Service Fabric App. Whether Azure AD and Microsoft Graph implementation is same in this Stateless WebAPI App. Kindly provide some references on this.
You need to make your class library target a compatible framework e.g. net452 (or netstandard2.0 when it's supported like 2017 Q3)
The below link talks about converting a .net core to azure service fabric application.
It talks about statefulservice. Statelessservice is more or less similar to it.
http://dotnetextensions.blogspot.in/2018/04/convert-dot-net-core-application-to.html?m=1
When it comes to azure ad, i won't have much impact. You can continue to use the same thing

Azure Websites, Can one deploy .NET 4.5.1 websites?

I notice that Azure Websites seems to offer .NET 3.5 and .NET 4.5. So I assume that one cannot deploy .NET 4.5.1 web applications yet?
I mention this as .NET 4.5.1 seems to have a useful new feature called "ASP.NET app suspension" which seems to pull back app images much more quickly into RAM. Perhaps Although this feature is targeted at hosters, one wonders whether this is a solution to the "Warm Up" issue?
Thanks in advance.
There are two questions here.
1) Azure Web Sites does support .NET 4.5.1, as in the update is installed on all Azure Web Site VMs. This has been available for several months now. So when you select 4.5, you are really running 4.5.1. The version reading "4.5" in the portal is misleading, unfortunately, and due to the fact the 4.5.1 upgrade did not change major/minor versions of framework so the "4.5" remains.
2) The specific "ASP.NET application suspension feature" unfortunately is part of a .NET 4.5.1 version that only ships in Windows 8.1/Server 2012R2. Azure Web Sites VMs currently only run Server 2012. Therefore ASP.NET application suspension is not supported in Azure Web Sites.
Azure Web Sites does other things to attempt to manage cold start performance issues (such as aggressive caching of compiled assemblies) but this is certainly a feature we would like to add in a future version of WAWS. Thanks for the feedback.
Cloud Services supports .NET 4.5.1
look here

ASP.Net API running on Windows Azure websites

I have an MVC project in Visual Studio 2012 RC which hosts an MVC web site and an ASP.NET API. I use routes to delegate the request to the correct controller.
On my local development machine both the website and api work fine. However when I push the change to Azure websites the website works, but the ASP.NET web api returns HTTP 500 errors.
The base site is: http://salaahtime.azurewebsites.net
One of the web site pages is http://salaahtime.azurewebsites.net/website/login
An example use of the API is http://salaahtime.azurewebsites.net/api/salaahtime/testestablishment/2012/1
However this returns HTTP 500.
I have
Updated my project to use .net 4.0. By default it is set to .net 4.5 which does not work with Azure websites
Removed Entity Framework 5.0 reference which only works with .net 4.5
Any ideas why the api would not work in Azure websites?
There is a known issue when backing a project down from 4.5 to 4.0 using the RC release of Visual Studio 2012. I know this will be slightly painful to hear, but you'll be better off creating a new project and setting the project's framework version to 4 rather than 4.5. This is an issue that should be fixed prior to the product's release.
Hope this helps. Trust me, we know of it and in our own development work have had to re-create projects using the 4 framework.
Also - the 4.5 framework will be supported in Windows Azure Web Sites once the 4.5 framework has been officially released.
Please try to turn off custom error (http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx), which may give more detailed information. If you’re working with a database, make sure you’ve updated the connection string to use Windows Azure SQL Database instead of a local database. There is also a possibility that Web API is not stood by web sites. The name web sites indicate it is used to build web sites, not web platforms. Web sites have limited features compared to web roles and virtual machines. If that’s the case, please use a web role or a virtual machine.
Best Regards,
Ming Xu.

Resources