I'm familiar with the WinDBG paradigm. Been reviewing a lot of dump files using WinDBG x64 version. For the most part dump files were .NET 2.0 applications and psscor2.dll. Current WinDBG version I am using is 6.12.0002.633. Recently, I've been trying to open x64 dump IIS dump files generated from a .NET 4.0 application pool using psscor4.dll. Any command I run returns, "Failed to request information"
I've mscordacwks.dll from c:\Windows\Microsoft.NET\Framework64\v4.0.30319 on the server
Renamed to mscordackwks_AMD64_AMD64_4.0.30319.xxxx.dll. xxxx matches the compiled version in the file
Open WinDBG, open the dump file and add the path to the above DLL to exepath
Run a basic command !eeversion to check all is fine and I get GC Heap not initialized, so GC mode is not determined yet In plan phase of garbage collection
Next I type !threads and get, Failed to request ThreadStore
Next !threadpool and I get, Failed to request ThreadpoolMgr information
I done some basic google search with these error messages and they all point to not having the correct mscordacwks.dll or opening x86 files in WinDBG x64 or x64 files in WinDBG x86. Didn't sound relevant to me
Any help/guidance is much appreciated
The build number 4.0.30319.17929 is a .NET 4.5 build number. PSSCOR4 will not debug 4.5. You need to use a 4.0 SOS and/or SOSEX, which works for all version of .NET 2.0-4.5.
I have found in the past that there are 3 dlls you need to have the correct version of for debugging .Net.
sos.dll
mscorwks.dll
mscordacwks.dll
here's how I usually go about getting these dll's http://sjbdeveloper.blogspot.com.au/, although it sounds as though you are using a server based application which means you could possibly just grab them from your production box, assuming you have access to it, or a staging box if you don't.
Related
I am creating an ASP .Net Core (2.0) MVC application within Visual Studio 2017 which was working absolutely fine.
After turning off my computer yesterday and coming back to my application today, I now receive this browser error when I start the application in chrome without debugging.
Running dotnet run within the directory of the application, I can access the site just fine. It is just when I run it via Visual Studio/IIS Express I get this error.
HTTP Error 502.5 - Process Failure
The application builds and compiles just fine. I have also cleaned the solution.
Looking in the event logs I find:
Application 'MACHINE/WEBROOT/APPHOST/MYAPP' with
physical root 'C:\Users\Ben Hawkins\Desktop\Development Folder
\Dev\Website\Version_2\MYAPP\MYAPP\'
failed to start process with commandline 'C:\Program Files
(x86)\Microsoft Visual
Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Web
Tools\ProjectSystem\VSIISExeLauncher.exe -argFile "C:\Users\Ben
Hawkins\AppData\Local\Temp\tmp3547.tmp"', ErrorCode = '0x80004005 :
0.
Within my output window in Visual Studio 2017 I recieve this message under
ASP NET CORE WebServer
Failed to initialize CoreCLR, HRESULT: 0x80131534
What I have tried:
Cleaning the solution, rebuilding etc
Restarting the computer
Trying to launch another application. (Same result)
Created a new application from scratch. Same result.
Repairing Visual Studio Community 2017. Same result.
Stopping/Closing IIS Express
My setup was working perfectly yesterday and suddenly is not.
Thank you for your time. I hope we can find a solution.
We finally found the issue! After logging on to the machine as a different user, we saw a warning that the main user had ignored initially. There was a 0 byte file in the root of the directory named "Program" with no file extension. It appears that this causes some sort of issue when VSIISExeLauncher.exe is invoked through Visual Studio. (Note it would work if executed from the command prompt). After deleting the file, everything worked!
We do not know how this file was placed there for certain, but suspect it was some sort of copy error when the user was pulling in files from his old hard drive.
I don't know if anyone else will come across this, but if so hopefully this helps!
Maybe you need install previous versions of .NET Core, isn't it? I installed here and it works now. I had only .NET Core 2.0 installed and I realized that applications with 1.1 stopped so when running. In Windows' event logs I've had the same error registered.
Try to change the IISExpress to IIS by creating new IIS profile and change the Lunch to IIS. It resolved my problem.
I have hit a very similar issue with ASP.net Core 2.0. I had copied my VS project to a new one, and I was getting this error message.
After doing some research, I was able to determine that the nlog.config file was not copied into the bin > Debug > net461 folder. Once I did this, I was able to run my application.
I found it by running dotnet run from the command line on my project where the csproj files live.
Had same issue yesterday (windows 10).
Solved it this way:
Update Microsoft.AspNetCore to latest (Nuget manager - 2.1.3)
Make sure the sdk also updated to latest version. if not, update it manually from Nuget console like this:
Install-Package Microsoft.NETCore.App -Version 2.1.3
Download and install latest ASP.NET Core/.NET Core: Runtime & Hosting Bundle
from here
Same problem with version 2.2. Reinstalling .NET Core SDK fixed the problem for us.
In my case, my project was setup as a website in IIS and the file "bin\IISSupport\VSIISExeLauncher.exe" was missing in the project's directory.
I simply selected "IIS" when debugging the project in Visual Studio 2019 and it generated the missing file. It also generated 2 text files (IISExeLauncherArgs.txt, pidfile.txt) in the IISSupport folder, made changes to my web.config file, and my project ran successfully.
After that I was able to access the local website that was setup in IIS without running it in Visual Studio.
I have installed a Web app on IIS 7.0 Windows Server 2008 R2 64bit.
I am referring an oracle.DataAccess.dll;
When I try to access the application I get the following message:
"Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format."
Can anybody help me, please?
It seems the Oracle Data Access Component installation process using the "11.2 Release 3 (11.2.0.2.1) with Xcopy Deployment" version is broken. To fix this you must register the missing assemblies in the GAC. To do this for this specific version run these commands from within an administrator console:
md C:\Windows\assembly\GAC_32\Oracle.DataAccess\4.112.2.0__89b483f429c47342\
copy %ORACLE_HOME%\odp.net\bin\4\Oracle.DataAccess.dll C:\Windows\assembly\GAC_32\Oracle.DataAccess\4.112.2.0__89b483f429c47342\
md C:\Windows\assembly\GAC_32\Oracle.Web\4.112.2.0__89b483f429c47342\
copy %ORACLE_HOME%\asp.net\bin\4\oracle.web.dll C:\Windows\assembly\GAC_32\Oracle.Web\4.112.2.0__89b483f429c47342\
Note that this registers only the DLL's but not other languages resources. So, if you are using any another language than English (de, es, fr, it, ja, ko, pt-BR, zh-CHS, and zh-CHT), then you need to register these as well using the corresponding resource file.
If you have Visual Studio installed on the machine, you can issue the following commands instead:
gacutil /i %ORACLE_HOME%\odp.net\bin\4\Oracle.DataAccess.dll
gacutil /i %ORACLE_HOME%\asp.net\bin\4\oracle.web.dll
Note: look for gacutil.exe under the Visual Studio installation folder for it.
Hope this helps.
P.S. Or you can try this.
I avoided registering the 11.2 Release 5 assemblies in the GAC by setting "Enable 32-bit Applications" for the application pool to true.
You may need to enable 32-bit applications in your AppPool.
http://www.alexjamesbrown.com/development/could-not-load-file-or-assembly-chilkatdotnet2-or-one-of-its-dependencies-an-attempt-was-made-to-load-a-program-with-an-incorrect-format/
You need to register that dll on the live server using GAC util. Also check if its present in bin folder or not. Some times missing dll's in bin directory results in same error
In my case, I use VS 2010, Oracle v11 64 bits. I might to publish in 64 bit mode (Setting to "Any Cpu" mode in Web Project configuration) and I might set IIS on Production Server to 32 Bit compability to false (because the the server is 64 bit and I like to take advantage it).
Then to solve the problem "Could not load file or assembly 'Oracle.DataAccess'" (sometime appear the "Compiler Error Message: CS1705: Assembly" error):
In the Local PC and Server is installed Oracle v11, 64 Bit.
In all Local Dev PC I reference to Oracle.DataAccess.dll (C:\app\user\product\11.2.0\client_1\odp.net\bin\4) which is 64 bit.
In IIS Production Server, I set 32 bit compatibility to False.
The reference in the web project at System.Web.Mvc.dll was the version v3.0.0.1 in the local PC, however in Production is only
instaled MVC version 3.0.0.0. So, the fix was locallly work with MVC
3.0.0.0 and not 3.0.0.1 and publish again on server, and it works.
Installing 64-bit ODAC 11.2 Release 3 (11.2.0.2.1) Xcopy for Windows x64 from:
http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
Fixed it for me. Make sure to update your system path as per step #4 in the readme file.
The accepted answer, published by George Netu helped to solve my problem, but I had to fiddle with some additional trifles:
Problem description:
Under C:\Windows\assembly, I found two Oracle.DataAccess items(GAC-folders?). Relict, caused by several Oracle client installations. One item showed Version 2.112.1.0 but was actually version 2.121.2.0 (visible through Properties->Version). That inconsistency was the bug.
First unhelpful attempts:
tried to deinstall and reinstall the Oracle full client, both in versions Runtime/Administrator
tried to redeploy the correct .dlls
tried to copy the new installed assemblies in the GAC serveral times, as stated in the accepted answer above via command prompt (but that didn't solve the version mismatch..)
tried to use gacutil /i ...
Final success:
I landed on the Gacutil.exe msdn page and were ultimately able to delete the items from the C:\Windows\assembly folder.
gacutil /u Oracle.DataAccess, Version=2.112.1.0, Culture="Neutral",PublicKeyToken=45e343aae32233ca
gacutil /u Oracle.DataAccess, Version=2.212.2.0, Culture="Neutral",PublicKeyToken=45e343aae3223abc
gacutil /u Oracle.Web, Version=2.112.1.0, Culture="Neutral",PublicKeyToken=45e343aae3223def
After that, i repeated the two gacutil /i ... commands and the two dlls appeared there in consistent versions.
Finally restarted the IIS, and it works..
Yeah, it is a quite annoying issue I faced sometimes. The main problem is that an web application uses wrongly 32 bit Oracle.DataAccess.dll instead of 64 bit, or in the reverse case. There are a few solutions for it.
1. Enabling 32-bit applications in the application pool if your application is 64 bit and need to run 32 bit Oracle.DataAccess.dll.
Go to the IIS and set true for "Enable 32-Bit Applications" option in Advanced Settings of an Application pool.
2. Correcting reference dll.
Reference path is supposed to be system reference path configured by Oracle Installation process. But, some cases such as installing or updating new Oracle version, the latest DLLs doesn't update old ones, or path is changed, or a reference is not updated in the web application project. Therefore, we should correct Oracle.DataAccess reference manually.
Go to the web application and remove Oracle.DataAccess reference. And add new reference for Oracle.DataAccess. It must be correct Oracle.DataAccess.dll from your oracle installation path. For example:
C:\Oracle\product\12.2.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll
ODP.NET and Dependent Unmanaged DLL Mismatch
To enforce the usage of
Oracle.DataAccess.dll assembly with the correct version of its
unmanaged DLLs, an exception is raised if Oracle.DataAccess.dll
notices it has loaded a mismatched version of a dependent unmanaged
DLL.
https://docs.oracle.com/cd/E11882_01/win.112/e23174/InstallODP.htm#ODPNT152
3. Easy and quick way (but not proper solution) to fix the issue is that override directly an Oracle.DataAccess.dll file copying from oracle installation path (for example: C:\Oracle\product\12.2.0\client_1\odp.net\bin\4\ ) to Bin folder of your web application.
Hope this helps you a little. Good luck.
I had the same problem.
I go to the project properties in general section set platform target to 64 bit (x64) and my problem solved
In application pool ---> click Advance settings --> Enable 32 bit option
see the this image
I have a new development machine Windows 7 x64 and am writing an MVC3 application that targets an Oracle database. I have tried everything that I know of to get it running with no success.
Previously, I was developing on a Win7 x32 box and could debug fine locally, but was unable to deploy and run it on a Win2008 x64 Server despite having ODP.Net and 11g Client installed.
"Could not load file or assembly 'Oracle.DataAccess' or one of its
dependencies. An attempt was made to load a program with an incorrect
format"
On my new x64 machine, I can build the project but when i try to run it in via the IDE I get:
"The provider is not compatible with the version of Oracle client"
I am at a complete loss.
Does anyone have a similar setup that could share detailed instructions of what to install where and how to to reference Oracle.DataAccess in such a way that I can debug in the IDE on my x64 box, and also deploy to x64 server?
It should not have to be this difficult.
I do have this running on Windows 7x64 with the Oracle 11g R2 client that comes with the ODAC installation here:
http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
Make sure you have the x64 version installed locally, and you may have to do the uninstall-reboot-reinstall-reboot tango. I also had weird problems getting it to see TNSNAMES entries and had to go with EZCONNECT strings, but that's not your problem.
In fact, I've also gotten it working on x64 using the 32 bit EF beta and it works fine:
http://www.oracle.com/technetwork/topics/dotnet/downloads/oracleefbeta-302521.html
Although I don't think the EF implementatinon is 100% ready for prime time yet (we ended up using the DevArt driver instead because it had more reliable support for computed fields - we never did get Computed or Identity Timestamps working in ODP.NET EF Beta, although oddly Primary Key NUMBER fields populated by triggers did work.)
I didn't have to do anything special, and I didn't have to do anything special on the server side either (with both 10g and 11gR2).
So I finally figured it out. Here is what I did step-by-step:
On my Win7 x64 development machine I removed all Oracle products in an attempt to start from scratch (including manually deleting registry keys and files/folders)
I installed "Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (x64) " ON BOTH the dev machine and production IIS server
I selected the RUNTIME option for the installation
During my first attempt the installation complained of not enough room in the PATH
environment variable so I had to cancel the install, remove some path values (which a replaced after the install completed
I installed to C:\oracle was my base path and client_x64 was my HOME so it installed to C:\oracle\product\11.2.0\client_x64
I then installed "64-bit ODAC 11.2 Release 3 (11.2.0.2.1) for Windows x64" on BOTH the dev and production mahcines.
install.bat odp.net4 c:\oracle\odac11.2.x64 odac112x64
The above statement creates a new home named odac112x64
At this point I built a simple console app using the following setup
Added reference to Oracle.DataAccess.dll located in C:\oracle\odac11.2.x64\odp.net\bin\4
Set CopyLocal = FALSE for the Oracle.DataAccess reference
Set the application to build for "ANY PROCESSOR"
The app connected to my oracle database and returned records on both machines
I then created a sample MVC website project with the same connection code as the console app.
When I ran it locally in the IDE it threw an error:
"Could not load file or assembly 'Oracle.DataAccess,
Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342'
or one of its dependencies. The system cannot find the file specified."
I believe this is because the IDE is 32bit and could not load a 64bit Oracle.DataAccess
I published that exact code to the production server and it ran successfully
At this point my only problem is getting it to run locally for development purposes
I installed "ODAC 11.2 Release 3 (11.2.0.2.1) with Xcopy Deployment" which is the x32 version of ODP.NET
install.bat odp.net4 c:\oracle\odac11.2.x32 odac112x32
When I re-ran the MVC website project locally it worked as expected!
UPDATED FOLLOW-UP INFORMATION #1:
After getting this to work I attempted to apply the same steps to another server and it failed. The problem was that "Allow 32-bit Applications" was set to TRUE in the application pool. DISABLING 32-bit apps (only allowing 64bit) resolved the problem on the new machine.
UPDATED FOLLOW-UP INFORMATION #2:
The ODAC installation on the new machine failed to place the installation and bin directory in the environment path (I hate Oracle). Once that was added, all was running as desired.
I have not worked with ODP.NET for quite some time, so I am running from memory of issues I had when I last used it.
The ODP.NET bits have to be installed on the server (or at least deployed, although I am not sure how that is accomplished off hand). The actual client in ODP.NET is the same Java libraries used for Oracle access. If installed, then you have some type of configuration error or permissions issue with using the underlying Java libraries.
I am not sure what the IDE message is about, however.
I am having an issue with something that seems like it should be simple. I am just trying to use the sharepoint object model from an ASP.net page. It's running on Framework 3.5 (required by sharepoint), and I realize it needs to be set to build on x64 (also required by sharepoint from what I understand). The issue is when I do this it returns "Could not load file or assemply ". If I switch it to any CPU then it reports that the call to build SPSite can't find the site address.
Basically if I open a brand new web app project and switch it to framework 3.5 and build target x64 it will report this same error. It seems like I am doing something stupid but I have no idea what it could be.
Ensure your IIS AppPool is set to x64.
The DLL's project build output / platform should be set to Any CPU.
I am trying to port an existing ASP.Net 1.1 website to another web server that currently runs IIS7 and a number of websites that target either .Net 2.0, 3.5 or 4.0. All other sites continue to work perfectly. Unfortunately, I can only browse static files on the newly imported site. If I try to access any of the Features in IIS7 for the new site I get the following error dialog:
There was an error while performing
this operation.
Details:
Filename:
\\?\C:\Windows\system32\inetsrv\config\applicationHost.config
Error:
I followed the instructions on this page but am at a loss as to how to get this working.
I encountered this problem too this afternoon.
I did a quick google and found others with the same issue on the asp.net forum. The issue seemed to be that
Here is what got me past this error, hope it works for you.
the runtime tries to load the
corresponding configuration, it
doesn't take the bitness of the
application pool into the
consideration. As you know, ASP.NET
1.1 is only supported on 32-bit. So if you have a 64-bit OS, in order to
run ASP.NET 1.1, you have to enable
32-bit applications in the application
pool. So, with the QFE/SP2 on 64-bit
OS (and only on 64-bit OS), the
runtime is incorrectly looking for the
1.1 version of the configuration under Framework64, which does not exist.
Workaround:
Create the Framework64 directory for 1.1
md \windows\microsoft.net\framework64\v1.1.4322\config\
Copy the 32bit config to 64bit config location created in step 1.
copy \windows\microsoft.net\framework\v1.1.4322\config\machine.config
\windows\microsoft.net\framework64\v1.1.4322\config\
http://blogs.iis.net/wonyoo/archive/2009/06/18/workaround-running-asp-net-1-1-on-vista-sp2-ws08-sp2.aspx