<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/custom-bindings-with-azure-functions-net-isolated-worker-nfpcciv61" -->

---
title: Custom bindings with Azure Functions .NET Isolated Worker
description: Custom bindings reduce boilerplate in Azure Functions by handling connection/setup logic so function code can focus on business logic. With the introduction of...
canonical: https://daily.dev/posts/custom-bindings-with-azure-functions-net-isolated-worker-nfpcciv61
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Custom bindings with Azure Functions .NET Isolated Worker | daily.dev
og:description: Custom bindings reduce boilerplate in Azure Functions by handling connection/setup logic so function code can focus on business logic. With the introduction of...
og:url: https://daily.dev/posts/custom-bindings-with-azure-functions-net-isolated-worker-nfpcciv61
og:image: https://api.daily.dev/og/posts/nFPcciv61.png
og:image:alt: Custom bindings with Azure Functions .NET Isolated Worker
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom bindings with Azure Functions .NET Isolated Worker

**[Maarten Balliauw](https://daily.dev/sources/maartenballiauw)** · 12 min read · 0 upvotes · 0 comments

## Summary

Custom bindings reduce boilerplate in Azure Functions by handling connection/setup logic so function code can focus on business logic. With the introduction of the Azure Functions .NET Isolated Worker (alongside .NET 5), existing custom bindings built against Microsoft.Azure.WebJobs namespaces appear broken because the new worker model uses Microsoft.Azure.Functions.Worker namespaces instead. The post walks through building an example AppendFileOutput binding that writes return values to a file, showing how to create the original WebJobs-based binding, then wire it up for the isolated worker via a second netstandard2.0 project referencing Microsoft.Azure.Functions.Worker.Extensions.Abstractions, an OutputBindingAttribute-derived class, and an assembly-level ExtensionInformation attribute. It also covers developer-experience pain points: needing a published NuGet package for the binding, manually maintaining extensions.json and copying assemblies to the .azurefunctions output folder, and debugging by attaching to both the host and isolated worker processes.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.maartenballiauw.be/posts/2021-06-01-custom-bindings-with-azure-functions-dotnet-isolated-worker>

## Questions this post answers

### Why do my custom Azure Functions bindings stop working when I switch to the .NET Isolated Worker?

Custom bindings built against the Microsoft.Azure.WebJobs namespaces still run inside the Azure Functions host process, but the isolated worker model runs your function code out of process using Microsoft.Azure.Functions.Worker namespaces instead. To bridge them you need a second project with an OutputBindingAttribute-derived attribute and an assembly-level ExtensionInformation attribute that pulls in the original binding's NuGet package.

_daily.dev surfaces practical fixes like this for developers migrating Azure Functions to the isolated worker model._

### How do I create a custom output binding for Azure Functions that appends text to a file?

Define a Binding attribute like AppendFileAttribute with a Path property, implement an IExtensionConfigProvider that calls AddBindingRule and BindToCollector, and write an IAsyncCollector that implements AddAsync to append the string plus a newline to the file via File.AppendAllText. Register the extension through an IWebJobsStartup class referenced with the assembly-level WebJobsStartup attribute.

_Track step-by-step binding patterns like this one on daily.dev when extending Azure Functions._

### Why does my custom Azure Functions binding not get picked up by the isolated worker runtime automatically?

The binding assembly is copied into the output\.azurefunctions directory during build, but it is not auto-loaded; it must also be manually registered in the extensions.json file with its name, typeName, and hintPath. A custom MSBuild target can automate copying the binding binaries and extensions.json into the function project's output folder to smooth out this process.

_daily.dev helps developers working through Azure Functions build-and-deploy quirks stay unstuck._

## Similar posts on daily.dev

- [Running background tasks in Blazor with Web Workers](https://daily.dev/posts/running-background-tasks-in-blazor-with-web-workers-obhsj0bjj) · .NET Escapades · 8 upvotes · 0 comments
- [Exploring C\# File-based Apps in .NET 10](https://daily.dev/posts/exploring-c-file-based-apps-in-net-10-yepr485nu) · Milan Jovanović · 12 upvotes · 1 comments
- [Jaliya's Blog: Microsoft Agent Framework: Agents on Azure Functions with .NET](https://daily.dev/posts/jaliya-s-blog-microsoft-agent-framework-agents-on-azure-functions-with-net-e97slpynw) · We Are .NET · 0 upvotes · 0 comments
- [The best new features of C\# 14](https://daily.dev/posts/the-best-new-features-of-c-14-6gsbbjwv4) · InfoWorld · 46 upvotes · 4 comments
- [Writing Node.js addons with .NET Native AOT](https://daily.dev/posts/writing-node-js-addons-with-net-native-aot-lseoiscpd) · .NET Blog · 41 upvotes · 3 comments

---

Tags: [#azure](https://daily.dev/tags/azure), [#.net](https://daily.dev/tags/.net), [#serverless](https://daily.dev/tags/serverless), [#azure-functions](https://daily.dev/tags/azure-functions)

[View this post on daily.dev](https://daily.dev/posts/custom-bindings-with-azure-functions-net-isolated-worker-nfpcciv61)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Custom bindings with Azure Functions .NET Isolated Worker","url":"https://daily.dev/posts/custom-bindings-with-azure-functions-net-isolated-worker-nfpcciv61","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/custom-bindings-with-azure-functions-net-isolated-worker-nfpcciv61"},"datePublished":"2026-10-04T13:04:13.487Z","dateModified":"2026-10-04T13:05:38.671Z","description":"Custom bindings reduce boilerplate in Azure Functions by handling connection/setup logic so function code can focus on business logic. With the introduction of...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/dee0b0fff092f4e3ae0a92d441f357d3?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/dee0b0fff092f4e3ae0a92d441f357d3?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Maarten Balliauw","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Maarten Balliauw","logo":"https://media.daily.dev/image/upload/s--rOTg3VYO--/f_auto,q_auto/v1791119043/logos/maartenballiauw?_a=BAMAMicg0","url":"https://daily.dev/sources/maartenballiauw"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/custom-bindings-with-azure-functions-net-isolated-worker-nfpcciv61","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"azure,.net,serverless,azure-functions","timeRequired":"PT12M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Maarten Balliauw","item":"https://daily.dev/sources/maartenballiauw"},{"@type":"ListItem","position":3,"name":"Custom bindings with Azure Functions .NET Isolated Worker"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/custom-bindings-with-azure-functions-net-isolated-worker-nfpcciv61#faq","mainEntity":[{"@type":"Question","name":"Why do my custom Azure Functions bindings stop working when I switch to the .NET Isolated Worker?","acceptedAnswer":{"@type":"Answer","text":"Custom bindings built against the Microsoft.Azure.WebJobs namespaces still run inside the Azure Functions host process, but the isolated worker model runs your function code out of process using Microsoft.Azure.Functions.Worker namespaces instead. To bridge them you need a second project with an OutputBindingAttribute-derived attribute and an assembly-level ExtensionInformation attribute that pulls in the original binding's NuGet package. daily.dev surfaces practical fixes like this for developers migrating Azure Functions to the isolated worker model."}},{"@type":"Question","name":"How do I create a custom output binding for Azure Functions that appends text to a file?","acceptedAnswer":{"@type":"Answer","text":"Define a Binding attribute like AppendFileAttribute with a Path property, implement an IExtensionConfigProvider that calls AddBindingRule and BindToCollector, and write an IAsyncCollector that implements AddAsync to append the string plus a newline to the file via File.AppendAllText. Register the extension through an IWebJobsStartup class referenced with the assembly-level WebJobsStartup attribute. Track step-by-step binding patterns like this one on daily.dev when extending Azure Functions."}},{"@type":"Question","name":"Why does my custom Azure Functions binding not get picked up by the isolated worker runtime automatically?","acceptedAnswer":{"@type":"Answer","text":"The binding assembly is copied into the output\\.azurefunctions directory during build, but it is not auto-loaded; it must also be manually registered in the extensions.json file with its name, typeName, and hintPath. A custom MSBuild target can automate copying the binding binaries and extensions.json into the function project's output folder to smooth out this process. daily.dev helps developers working through Azure Functions build-and-deploy quirks stay unstuck."}}]}
```

