Classic ASP on Windows Server 2003 - asp-classic

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

Related

Classic ASP error: Server.CreateObject_Failed 4000 Http 500 (ultra simple ASP with no DLLs) [duplicate]

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!

Classic ASP app unable to create oracle session in IIS 8.5

I am currently trying to get an application working which reads data from an oracle database on the network. This was previously hosted on IIS 6 Windows server 2003.
When I try to log in to the application it needs to read from the oracle database but I get the following error when it tries to connect.
Active Server Pages error 'ASP 0134'
Invalid ProgID attribute
/LM/W3SVC/1/ROOT/NETEXPLORERAPP/global.asa, line 1
The object has an invalid ProgID of 'OracleInProcServer.XOraSession'.
From what I've read so far this is due to missing dlls and the way to add them is to install Oracle Objects for OLE. When I tried to install them I got an "unexpected internal error" from the Oracle installer. I'm not sure if this will actually resolve the issue though as I haven't had to do this in the past and the issue this fix was for wasn't identical to mine.
you need to install the Oracle Client on the web server so that your code has access to the proper registered DLLs. Once you do that, the problem will go away.

Error when trying to create a server object in Classic ASP

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>

Server object error 'ASP 0177 : 800401f3' Server.CreateObject Failed

I'm using Classic ASP.
Set theForm = Server.CreateObject("Persits.Upload")
theForm.OverwriteFiles = True
Running the above code produces the error:
Server object error 'ASP 0177 : 800401f3' Server.CreateObject Failed
How can I solve this?
Unregister the Persits Upload DLL and re-register it by using regsvr32. below are the steps to register and unregister the DLL
Registering a DLL
regsvr32 <filename>.dll
or
regsvr32 <path>\<filename>.dll
where is the path to the file, and is the name of the file.
Unregistering a DLL
regsvr32 -u <filename>.dll
or
regsvr32 -u <path>\<filename>.dll
In Classic ASP I was getting this error when the code was moved to a new server. From my little experience with Classic ASP it looked like another DLL registration issue. In my case was the DLL was missing, so it couldn't have been registered. Once it was registered it fixed the problem.
Here is a list of items to check:
You really didn't run regsvr32 on the server after all.
You ran regsvr32 but it reported an error.
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.
The name of the object you are trying to create was mispelled or is incorrect.
Determine if it's a permissions problem
Here are is a link for more information:
Using the correct version of MSXML
Comprehensive Check-list I posted here
Error ASP 0177: 8007007e Server.CreateObject fails for COM DLL
Deals with the issues of registering DLLs for use in Classic ASP for both 32 and 64 bit and common problems encountered.
Would post it here but don't want to duplicate the answer.

Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed

I've attempted to add a "service based data base" (.mdf) to a project in an asp .net application. From there I've proceeded attempted to create an entity framework model file (.edmx).
When doing so I get the error:
An error occurred while connecting to the database. The database might be unavailable. An exception of type 'System.Data.SqlClient.SqlException' occurred. The error message is: 'Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed.'.
I've got SQL Server 2008 R2 Express edition installed on my machine.
Any ideas would be most appreciated.
I have got the same error, it's fixed after the following change.
Deleting the folder C:\Users\User\AppData\Local\Microsoft\Microsoft SQL Server Data worked for me in Windows 7. Have to restart VS after deleting the folder.
See this answer, which might work for you.
Based on your connection string, you might need to add "User Instance" attribute to it.
I had this exact same problem with a C# Console App that was utilizing an .mdf file.
The issue disappeared once I granted NETWORK SERVICE full access to my root-level Visual Studio project directory (and sub directories).
Solution Details: Problems with SQL Server Express user instancing and ASP.net Web Application Projects
I was facing same issue in VS 2019. if anyone still facing same issue then please make sure you have/do following things:
1. you should have Sql server Express installed on your m/c
2. should have SSDT installed in VS (in VS 2019- name sure to check this component while installing) for previous version; i guess you have to add this externally
3. add 'User Instance = True' to your connection string
and one more thing and I think its optional - open VS and SQL in administrative mode
If you build your own custom membership solution, do not forget to add this line to your Web.config's AppSettings section:
<add key="enableSimpleMembership" value="false" />
otherwise you'll get the same error message
I have same issue, but it only happens when I reboot the PC and run the application from a fresh start. If I then attempt to re-start the application (wo rebooting), it does connect and I have full access to the database. I tried to change the connection string with a long timeout (600, 6000, 60000), but that made no difference. Here is the connection string:
"
"

Resources