Windows 2008 application server?
It is Windows Server 2008 R2.
Same Problemm on Server 2012.
My Installation Programm can connect to db wheter the the installation was started by a user account. Problem only occurs, if my application is executed by msiexec as system account.
Database (11g) is installed on the same server the installation process is executed.
I cannot provide an answer, but we had good experience with using ProcMon (Sysinternals) to see what files are accessed/opened when a certain process runs. If you have a reference user with which it runs, you might be able to spot the difference between the system user of the installer. With managed odp.net I anyhow wonder how to pass paramters like NLS_LANG and character set, as in the web.config/app.config did not work for me.
I will analyse the difference using ProcMon.exe. Are there any other ideas ?
Google Translate is telling me that error is "Object reference not set to an object instance." Considering the error and where it's coming in the stack trace, I'm 99% confident that's a bug in the managed provider. If your organization has an Oracle support contract, you can contact them and get them to fix it. (Alternately, if one of the ODP.net team sees this thread they can look into it.)
In the mean time, no good workarounds come to mind. You might be able to use impersonation to make the bits where you're connecting to the database run as another user on the system (NT Authority\System is a special account that doesn't behave like a normal one), but that would get very ugly in code. I also suspect it would work if the system language was English, but that's probably not practical to change either.
thx for your answer. After your hint I've tried to use impersonation during Installation Process, but the result stays the same. I've read that changing from NT-AUTHORITY\SYSTEM to a local Account is not possible within C# during an Installation Process.
The next bad news is, that i've not found any differences using ProcMon.
Can you try changing your locale to English and seeing if that works? You could possibly be running into a known bug with non-ASCII users. German (NT-AUTORITÄT\SYSTEM).
If that isn't the issue, can you provide more info on how to reproduce your problem independently, such as test case and notable security settings?
I've changed the locale as described in Change the system locale
Is there something else to Do ?
I've created a small demo Installer which has 6MB of Disk Space. is there a way to upload that zip File ?
Sorry to hear that procmon did not help you. Instead of changing locale, you could also try to create a local user with an Umlaut. Then you see if the error is caused by such an issue.
One last tip could be to verify with process explorer what kind of environment variables and other settings affect the process running. Maybe comparing that data might lead to something useful.
I've created a non-ASCII user. Tried with german and english locale. The Connection could be opended correctly with booth settings. it seems to be an issue related to the special account type NT-AUTHORITY\SYSTEM.
There are also no differences with process explorer which could be lead into any issue.
Did you try logging in with NT-AUTHORITY\SYSTEM when the locale was English? That's the specific user we want to check whether it works in English for you.
Email your 6 MB file to dotnet_us(at)oracle.com. We'll take a look.
Yes the msiexec.exe which executes my installation was run as NT-AUTHORITY\SYSTEM while the lolcale was set to English.
I've send an e-mail to the given adress with an example project.