The .dll is ASPCache_x64.dll, in C:\Windows\System32 (I know; this decision was made before my time.)
The server is a Windows Server 2008 R2 VirtualBox VM with IIS 7.5, on a host running Windows 7. The website in question is a classic ASP site running under .NET Framework 2.0. The VM itself is a copy of a VM we use as a template, and no one else using a copy of that machine is having this problem.
The problem:
On loading any page, I get the following error:
ERROR IN PROCESSING: ?
ASP Code:
Number: 0
Source:
Line
Number: 0
Description: Create object failed
ASP Description: An error occurred while creating object 'myCache'.
Other information:
eventually traced to Global.asa <object> tag
attempting to create and use an ASPCache object in a VBScript file run from a desktop folder works fine
attempting to create and use an ASPCache object on a test ASP page in the same domain gives me the same error until I refresh the page, at which point I get this error:
(workaround for broken markdown; ignore this line)
ERROR IN PROCESSING: /test_createobject.asp
ASP Code:
Number: -2146959359
Source:
Line Number: 4
Description: Cannot create ASPCache object - a required component is missing. Please reinstall your software.
I have tried:
downloading a fresh copy of the VM
making sure IUSR has read and execute permissions on C:\Windows\Systeme32\ASPCache-x64.dll
de-registering and re-registering C:\Windows\Systeme32\ASPCache-x64.dll with regsvr32.exe
granting IUSR read permission on the ASPCache and ASPCache.1 registry keys
applying the fix found here: Server.CreateObject Failed in Classic ASP
checking every setting I can think of against our shared dev environment, which doesn't have this problem
restarting IIS after every change
restarting the computer after all of the above
granting individual app pools read and execute permissions on C:\Windows\Systeme32\ASPCache-x64.dll
changing the default application pool identity to NetworkService
changing the default application pool identity to [Machine name]\Administrator
I've been Googling this problem on and off for months. Nothing I've found has helped.
Code for the test asp page, which doesn't work:
<%
Dim testCache
Set testCache = Server.CreateObject("ASPCache")
testCache("Marco") = "Polo"
Response.Write testCache("Marco")
%>
Code for the VB Script, which does work:
Dim testCache
Set testCache = CreateObject("ASPCache")
testCache("Marco") = "Polo"
WScript.echo o("Marco")
Relevant code in Global.asa, which gives the original error:
<OBJECT RUNAT=Server SCOPE=Application ID=TestCache PROGID=ASPCache></OBJECT>
Related
This question already has an answer here:
Error ASP 0177: 8007007e CreateObject fails for COM DLL
(1 answer)
Closed 3 years ago.
I moved some old code (WS 2008) to a new server (WS2016). The new server gives HTTP 500 errors and in the C:\inetpub\logs\LogFiles\W3SVCx log shows "Server.CreateObject_Failed 4000" despite the fact that no DLL is (intentionally) being referenced. Another site on the same server (different port) works fine.
I compared website and app-pool settings on both servers and on both sites. I have verified that a simple HTM works. I am testing by using IIS (v10) to go to 'Content View' and right click to browse ASP.
http://localhost:3000/hello.asp
I tried a few registry hacks as suggested on similar SO questions.
My code (hello.asp) has two words
hello world
I expect to get back just those two words but instead get "HTTP 500 Internal Server Error".
Any suggestions are appreciated.
Updates:
I created a new site from scratch with just the hello.asp and that worked fine. I slowly started pulling over one file at a time from the the failed site to the working site. When I pulled over global.asa, it blew up (http 500). I am not that familiar with the file, but researched it and see that it gets invoked at start up. Looking at the contents of mine, I saw what looked like references to a DLL. I found and copied it from the old server to the new server (in the SysWow64 folder) and then used CMD as Admin to register it using REGSVR32. The register worked, but I still get 500 (after site restart, app-pool recycle, and iisreset)
Using #Lankymart 's suggestion, I was able to get the following error to display
Microsoft VBScript runtime error '800a01ad'
ActiveX component can't create object
/LM/W3SVC/5/ROOT/global.asa, line 13
which points to a line of code in global.asa that says
set objServiceMgr = server.CreateObject("XMLMGR.FedXReqMgr")
XMLMGR is the DLL that I registered (to no avail).
I tried all the suggestions at Error ASP 0177: 8007007e Server.CreateObject fails for COM DLL (regsvr32, regedit, syswow64) and my error persists. The problem description is very similar, the same I guess, but none of the suggestions have worked - yet
This is in fact an indirect duplicate of Error ASP 0177: 8007007e Server.CreateObject fails for COM DLL
The trick was finding the real error using the tips at
Detailed 500 error message, ASP + IIS 7.5
The process also taught me that global.asa is invoked when the site is accessed even if the ASP you are pointing to is a simple helloworld.asp with no code. Since the global.asa (in my case) is referencing a DLL, that DLL has to be dealt with (properly registered) before any other ASPs in the same folder can be invoked.
For my app, I also add to set the App Pool to Enable 32-Bit Applications
(Classic ASP and COM DLL Does not work in Server 2008 R2 (Microsoft VBScript runtime error '800a01ad' ActiveX component can't create object ). Only then could I display my simple ASP.
Thanks for everyone's help!
I am trying to debug one application which has mostly .aspx and .cs pages and the database behind it is an oracle SQL Developer database.
The whole application runs fine but it crashes on launching pages with .asp extension.
Below is the error:
"ADODB.Connection error '800a0e7a'
Provider cannot be found. It may not be properly installed.
After Googling I did enable ASP checkbox in Windows ADD/remove features.
Also, I tried changing Pipeline to classic and enabled 32-bit mode in the application pool of IIS server, but then the whole application stopped running in Visual Studio.
I had also created an odbc DNS driver in ODBCAD32.
Everything works fine but only crashes with .asp pages.
The error message says it all, ADODB cannot open database given in the connection string. Typically, classic asp must have the connection string somewhere in its code and it does not read the web.config file, which is for asp.net. To troubleshoot, open the source code of the failed asp page, find where it calls database, and check the connection string. It might happen that asp used "includes" and the connection string was defined in a different file, specified in <!--#include file="..."-->
Examples of connection string to Oracle can be seen here.
I am trying to build a simple web service in C# using VS2015 to be hosted on Windows Server 2012R2.
I have the code written and it works properly when hosted in the Visual Studio debugger. The debugger will launch IE and give me the UI to test the simple methods in my code. I can enter a temperature in Celsius and get back the temperature in Farentheit. So my understanding is that my code itself is working.
However, when I publish my project and attempt to load it in IE, I get:
Server Error in '/' Application.
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Could not create type 'TestAutomation.AutomationInterface'.
Source Error:
Line 1: <%# WebService Language="C#" CodeBehind="~/App_Code/WebService.cs" Class="TestAutomation.AutomationInterface" %>
Source File: /TestToolsAutomation/AutomationInterface.asmx Line: 1
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.81.0
I am publishing my project by going to Build -> Publish Web App. I am selecting "File System" as my publish method and am publishing to "C:\inetpub\wwwroot\MyAppName" in the Debug configuration with no check boxes in the File Publish Options. When I publish, I have the following files in the MyAppName folder:
-AutomationInterface.asmx
-Web.config
\App_Code
WebService.cs
The obvious issue I see here is that there is no .dll file created with my compiled code. I'm far from an IIS expert, but isn't this supposed to be created the first time a user requests the page?
I then re-published and checked "Precompile during publishing" in the file options. When I do this, a \bin folder is created with files "App_Code.compiled" and "App_Code.dll" files. However, I get the same error in the browser.
Because my code works in the VS debugger but not when hosted in IIS, I suspect the problem is on the IIS side of things, but I'm not 100% certain of that.
When I request the IIS page in IE, I get an event 1310 with source "ASP.NET 4.0.3.30319.0" in the application event log that says "Event code: 3006
Event message: A parser error has occurred" along with a stack trace that shows a bunch of System.Web.Compilation functions.
I have searched for this error on Stack Overflow and other sites, but none of the suggested solutions appear to solve my particular problem.
I would appreciate any help the community could offer.
UPDATE: I enabled failed request tracing on the server. It appears that the error happens here:
154. view trace
Warning
-MODULE_SET_RESPONSE_ERROR_STATUS
ModuleName
ManagedPipelineHandler
Notification
MAP_REQUEST_HANDLER
HttpStatus
500
HttpReason
Internal Server Error
HttpSubStatus
0
ErrorCode
The operation completed successfully.
(0x0)
ConfigExceptionInfo
ManagedPipelineHandler
I lack the background to fully understand what IIS is trying to tell me. Any tips would be appreciated.
After struggling with this for hours and making all kinds of settings changes, and uninstalling and reinstalling IIS several times, I finally solved this.
I had to right-click on the folder in which I published my files in IIS Manager and select "Convert to Application." It's now working!
Here are a few possible ideas to explore:
Have you looked at the permissions for the account that the Application Pool in IIS is using to run this? There can be ASP.Net Temporary files that aren't being generated that could be an issue here.
Is ASP.Net registered with IIS? I've remembered more than a few times to have to run "aspnet_regiis -i" on servers to install the ASP.Net part so that it'll be present within IIS.
Is IIS configured to allow ASP.Net requests? In the IIS Manager on the machine level there is an "ISAPI and CGI Restrictions" to note.
Update: Perhaps you could look at the configuration for the Application Pool and see which .Net version it is using and whether it is integrated or classic mode. Those would be the next level of things to examine.
I have a web app which is working fine in IIS 6 ex:loading page, loading doc and excel file perfectly. recently I moved the same web app code ti windows server 2008 R2 IIS 7. Now it is not working correctly, it is browsing but it is not loading the Excel and doc files properly.
Additonal Trouble Shooting Info
Adding to the above when i checked the event viewer i am getting below information
The description for Event ID 0 from source Quotes cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
If the event originated on another computer,
the display information had to be saved with the event.
The following information was included with the event:
Class : GetFile Method : Page_Load An unexpected error has occurred
while locally saving the requested file. Error details - Object
reference not set to an instance of an object. the message resource is
present but the message is not found in the string/message table
could you please help on this. how to find the root error and how to trouble shoot further.
This is a long shot but we had an issue where we used to parse data Excel worksheets using Microsoft.JET.OLEDB.4.0
This started to throw errors on an Application hosted within IIS7 but was fine in IIS6.
Our fix was to:
Right click the Application Pool being used by the Web App
Advanced Settings
Set Enable 32-Bit Applications to True
If that fails to help, why not try to use the Classic .NET AppPool with your application, as opposed to the DefaultAppPool (which I am assuming is the case).
Good luck!
After I configure everything (IIS, Websites, permissions) on newly installed virtual server, I get this error when run the default.asp file.
Server object error 'ASP 0177 : 800401f3'
Server.CreateObject Failed
/default.asp, line 30
I found ASP 0177 post very useful. But I can't seem to solve it. It give a solution like this
A: This error means "Invalid class string" -- in other words the call to CreateObject failed because the name object cannot be found by the OLE sub-system. Causes include:
1. You really didn't run regsvr32 on the server after all.
2. You ran regsvr32 but it reported an error.
3. Someone modified security on part of the registry that's preventing the OLE subsystem from reading all or part of the HKEY_CLASSES_ROOT tree.
4. The name of the object you are trying to create was mispelled or is incorrect.
5. Determine if it's a permissions problem
6. Determine if it is a file permissions problem:
7. Check registry permissions
Which service do I have to register? Isn't ASP automatically installed on Server 2003 when install IIS? If not what setting do I need to change? This is a freshly installed Virtual Windows Server 2003?
EDIT: I think this link might work but not sure ASP Win Svr 2003
EDIT2: Code:
Set BACSE = Server.CreateObject("NAICSCodeSE2_1_0.Engine")
If Session("DEBUG") = "TRUE" then Response.Write "BACSE Debug="&BACSE.SetDebugMode(True)&"<BR>"
Custom COM component first need to Register in Server with below command, before using it in classic ASP page.
regsvr32 yourcomdllfile.dll