C# (.NET) Entry Point (DO NOT MODIFY)
The base Azure Functions template includes a properly configured Program.cs that should NOT be modified or replaced by recipes.
⛔ CRITICAL: Do NOT replace or modify
Program.csfrom the base template.
Base Template Program.cs
The official functions-quickstart-dotnet-azd template uses:
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
var host = new HostBuilder()
.ConfigureFunctionsWebApplication() // ASP.NET Core integration
.ConfigureServices(services =>
{
services.AddApplicationInsightsTelemetryWorkerService();
services.ConfigureFunctionsApplicationInsights();
})
.Build();
host.Run();Why This Matters
| Feature | ConfigureFunctionsWebApplication | ConfigureFunctionsWorkerDefaults |
|---|---|---|
| ASP.NET Core integration | ✅ Yes | ❌ No |
| IActionResult return types | ✅ Yes | ❌ No |
| [FromBody] model binding | ✅ Yes | ❌ No |
| App Insights integration | ✅ Built-in | ❌ Manual setup |
| Modern HTTP handling | ✅ Yes | ⚠️ Limited |
What Recipes Should Provide
Recipes only need to add:
- Trigger function files (
.csfiles with[Function]attributes) - Package references (
.csprojadditions for extensions) - App settings (connection strings, configuration)
All triggers use attribute-based binding — no Program.cs modifications needed:
[HttpTrigger],[TimerTrigger],[CosmosDBTrigger][ServiceBusTrigger],[EventHubTrigger],[BlobTrigger][DurableClient],[SqlTrigger]
Common Mistake
❌ WRONG — Recipe overwrites Program.cs with outdated version:
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults() // OLD PATTERN
.Build();✅ CORRECT — Recipe leaves Program.cs untouched, only adds function files.