AI agents: use the documentation index at llms.txt to locate machine-readable pages. This section is indexed by https://docs.particular.net/transports/llms.txt. The markdown version of this page is served as plain text. An MCP server at /mcp serves the same content via the search_docs and read_doc tools; it is read-only and needs no credentials. Markdown versions of documentation pages are available by appending .md to the page URL. Directory URLs use index.md. They are served as text/plain because some retrieval backends reject text/markdown.

SQL Server Transport Upgrade Version 3 to 4

TransactionScope

TransactionScope transaction mode is not available in .NET Core 2.0 because the implementation of SqlConnection does not support enlisting in an ambient transaction.

To run the upgraded project on .NET Core the transport needs to be switched to one of the native transactions modes. Consider using the Outbox to maintain the same exactly-once processing guarantees.

Multi-instance mode

The multi-instance mode has been deprecated in Version 4. So the following is no longer supported:

var transport = endpointConfiguration.UseTransport<SqlServerTransport>();
transport.EnableLegacyMultiInstanceMode(async address =>
{
    var connectionString = address.StartsWith("RemoteEndpoint")
        ? "Data Source=SQL; Database=RemoteEndpoint; Integrated Security=True"
        : "Data Source=SQL; Database=ThisEndpoint; Integrated Security=True";
    var connection = new SqlConnection(connectionString);
    await connection.OpenAsync();
    return connection;
});

NServiceBus topologies with queues distributed between multiple catalogs hosted in a single instance of SQL Server can now be configured using multi-catalog addressing:

var transport = endpointConfiguration.UseTransport<SqlServerTransport>();
transport.ConnectionString("Data Source=SQL; Database=ThisEndpoint; Integrated Security=True");
transport.UseCatalogForEndpoint(
    endpointName: "RemoteEndpoint",
    catalog: "RemoteEndpoint");

If catalogs are hosted in different instances of SQL Server, use NServiceBus.MessagingBridge to construct a bridge. The multi-instance sample demonstrates this approach.

Related Articles