I am trying to containerise a .NET framework 2.0 legacy application connecting to sql server on localhost outside the Docker, I am able to containerise the application but it doesn’t connect to sql server.
Even I comment out the connection string from the web.config, it tries to connect to sql server and I get the following error.
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server)
Here is my Dockerfile
FROM mcr.microsoft.com/dotnet/framework/aspnet:3.5-windowsservercore-ltsc2016
ARG source
EXPOSE 1433 //SQL-Server port
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN Remove-Item -Recurse C:inetpubwwwroot*
RUN Install-WindowsFeature -Name Web-ASP; Install-WindowsFeature -Name Web-ISAPI-Ext
RUN Install-WindowsFeature Web-Mgmt-Service ;New-ItemProperty -Path HKLM:softwaremicrosoftWebManagementServer -Name EnableRemoteManagement -Value 1 -Force; Set-Service -Name wmsvc -StartupType automatic;
RUN Install-WindowsFeature web-server, web-webserver
RUN Import-Module WebAdministration;Import-Module ServerManager
RUN New-Item c:/msi -ItemType Directory
RUN powershell -Command Invoke-WebRequest http://download.microsoft.com/download/D/D/E/DDE57C26-C62C-4C59-A1BB-31D58B36ADA2/rewrite_amd64_en-US.msi -OutFile c:/inetpub/rewrite_amd64_en-US.msi
RUN powershell -Command Start-Process c:/inetpub/rewrite_amd64_en-US.msi -ArgumentList "/qn" -Wait
RUN New-Item -ItemType directory -Path 'c:inetpubwwwrootRAFTSTestAdmin'
RUN Import-Module WebAdministration; New-WebVirtualDirectory -Site 'Default Web Site' -Name 'Admin' -PhysicalPath "c:inetpubwwwroot"
WORKDIR /inetpub/wwwroot/RAFTS/Test/Authentication
COPY authentication/. .
WORKDIR /inetpub/wwwroot
COPY admin/. .
RUN cmd /c icacls C:/inetpub/wwwroot /grant:r Everyone:F /t
My connection string in web.config
<!--<add
key = "***.Data.ConnectionString"
value = "Server=****, 1433; Database=***;User ID=***;Password=***;" />-->
I have tried using host.docker.internal in the connection string
<!--<add
key = "Stopford.RAFTS.Data.ConnectionString"
value = "Data Source=host.docker.internal,1433; Database=***;User ID=***;Password=****;" />-->
but I am unable to ping host.docker.internal so there is no use of using in connection string.
I have tried every resort and every suggestion posted on stackoverflow and other blogs and internet resources but haven’t got any success so far.
My main worry is despite there is no reference to sql connection after I commented all the connection references in web.config, the code is still looking to connect to sqlserver.
Any help would be great as I am struggling to resolve this issue for last 2 weeks
user3595854 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.