.net-jet driver looking for system.mdb in invalid directory

Viewed 20

We have a .Net-App that uses Access-Datases (.mdf-files). Since we are german the default-installation-folder for our app is "C:\Program Files (x86)\Promess GmbH\Prüfplanung". Notice the german "ü" in the path. We do this since many years, many different Windows-Versions and in many different local settings on multilingual windows-systems. Even on machines in thailand, china and other countries which are not using german umlaute. Never encountered any problems with it. But now I have a problem when opening the Database on a thai-windows10-64bit with locale set to german. When I install our program to a folder without "ü" everything works fine but when I leave it with "ü" I cannot open a connection to access. Here are just some parts of the Code:

Private m_Connection As ADODB.Connection    
Dim m_DbConnStr As string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\SPCData\UserWorks\Planning\Promess_Test_alle_112K_2.4.05.mdb;User ID=Admin;Password=;"
     
m_Connection.Mode = ConnectModeEnum.adModeReadWrite
Try
  m_Connection.Open(m_DbConnStr)
Catch ex As System.Runtime.InteropServices.COMException
  'handling the exception
End Try

As you see there is no reference to the install-folder ("C:\Program Files (x86)\Promess GmbH\Prüfplanung") in the connectionstring. m_Connection.Open trows a COMException which looks like this

Exception

Stacktrace:

at ADODB.ConnectionClass.Open(String ConnectionString, String UserID, String Password, Int32 Options)
at Promess.Spc.Storage.Database.Database.OpenDatabase(String connect) in S:\WinSPC\Pruefplanung\Storage\Storage.vb:line 1618

I used Sysinternals Process Monitor to get a clue of whats going on and saw the following:

Processmonitor

with the folloing stacktrace

Stack

Someone (I think it's the MS-Jet-Engine) tries to access \Pr?fplanung\system.mbd which is of course an invalid path. Our sourcecode does not refere to a "system.mdb" anywhere.

So my quetsions is why is jet trying to access this invalid? Can I prevent it? On other Systems (non-germans as well) it works as it should and I don't know what to do to prevent the exception. Only workaround is not using "ü" in the setup-path.

My program uses .Net-Framework 4.8

0 Answers
Related