dotnet / dotnet/SqlClient

Support SqlDataSourceEnumerator on Linux

Open
#3,700 0 comments 0 reactions 0 assignees View on GitHub
Approval Needed
Dominant language
C#
Stars
989
Forks
340
Avg merge
4d 19h
Merged PRs (30d)
72

Description

### Is your feature request related to a problem? Please describe.
`SqlClientFactory.Instance.GetDataSources` uses `Microsoft.Data.Sql.SqlDataSourceEnumerator` to get a list of all SQL Server instances which a server's SQL Server Browser service announces on the local network using [SQL Server Resolution Protocol](https://learn.microsoft.com/en-us/openspecs/windows_protocols/mc-sqlr/1ea6e25f-bff9-4364-ba21-5dc449a601b7).

SqlDataSourceEnumerator does this using the native SNI, but doesn't have any fallback in managed code, which means that Linux clients (and anything using the managed SNI) can't use it.

### Describe the solution you'd like
I'd like the managed SNI to support SSRP discovery.

### Describe alternatives you've considered
Users could implement their own SSRP client, such as [this one](https://github.com/mrsquish/SqlBrowserClient).

### Additional context
I'm currently working on support for this, I'm just raising the issue so that I don't submit new functionality with 2-3 large PRs out of the blue.

This is slightly different to comments in #17 (which covered making the API surface available, but didn't extend to Linux compatibility.)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.