IT Nota

  • Home
  • How To
  • .NET
  • WordPress
  • Contact

How to Fix Invalid SendUsing Configuration using CDO

When you use CDOsys to send email from a classic ASP, you might see an error message below and if you look at the line error, it’s always on the message.Send:

The page cannot be displayed

There is a problem with the page you are trying to reach and it cannot be displayed.

Please try the following:

Contact the Web site administrator to let them know that this error has occurred for this URL address.

HTTP 500.100 - Internal server error: ASP error.

Internet Information Services

Technical Information (for support personnel)

Error Type:

CDO.Message.1 '80040220'

The "SendUsing" configuration value is invalid.

/path/filename.asp, line 100

Browser Type:
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36

Page:
POST 279 bytes to /path/filename.asp
POST Data:
category=...

Time:
Monday, October 26, 2015, 10:12:55 PM

More information:

Click on Microsoft Support for a links to articles about this error.

Go to Microsoft Product Support Services and perform a title search for the words HTTP and 500.

Open IIS Help, which is accessible in IIS Manager (inetmgr), and search for topics titled Web Site Administration, and About Custom Error Messages.

In the IIS Software Development Kit (SDK) or at the MSDN Online Library, search for topics titled Debugging ASP Scripts, Debugging Components, and Debugging ISAPI Extensions and Filters.

Several posts would suggest that you put the SMTP server in the code. But when you already have an SMTP server setup on IIS 6.0, here’s a couple things you might want to check as well:

  1. Check if the Application Pool is at least running under version 2.0.
  2. Give user MACHINE\IIS_IUSRS modify permission on C:\inetpub\mailroot directory (or if you moved the SMTP folders somewhere else, give that permission to the new directory instead).

    Give modify access to IIS_USRS user on mailroot directory

Also check the links under Further Reading below for the common solutions pertaining to this error.

Further Reading

The “SendUsing” configuration value is invalid. (IIS.NET Forums)
The “SendUsing” configuration value is invalid. (ASP.NET Forums)

November 11, 2015 Filed Under: How To Tagged With: Classic ASP, IIS, Internet Information Services, Windows Server

How to Fix Permission Denied Error 800a0046

If you still use CDONTS object in your ASP page and run into this kind of error:

Microsoft VBScript runtime error '800a0046'

Permission denied

/path/filename.asp, line 4

Then when you open the file, you see something like this.

Set oCDOMail = Server.CreateObject("CDONTS.NewMail")

oCDOMail.Importance = 1
oCDOMail.Send

Just by reading the error message, you can probably guess that this error occurs usually because the anonymous user account is not granted a Modify permission to the mailroot folder and it can be easily resolved by following these steps:

  1. Open Windows Explorer and locate the mailroot folder. The default should be C:\inetpub\mailroot, but this may be moved by your system administrator.
  2. Right-click the mailroot folder, then click Properties.
  3. On the Security tab, click on the Edit button.
  4. Click Add.
  5. Add IUSR_ and IWAM_ (separated by a semi-colon). Make sure the location is your desktop, not your domain name. Click Check Names, then OK.
  6. Give Modify permission for each of the account added previously. Click OK.
  7. Click OK to close the dialog box.

This time your asp page should render without any issues.

As in our exprience, there will be time when you upgrade a very old system, when you try to grant these permissions, you’ll see some garbled error message and it still doesn’t resolve the problem. When all else fails, and it may be easier and faster to replace the code using CDO (cdosys.dll).

August 20, 2015 Filed Under: How To Tagged With: Cdonts Dll, Classic ASP, Windows 2012, Windows Server

How to Replace CDONTS with CDOSYS on Classic ASP Pages

Replacing CDONTS with CDOSYS, while can be time consuming for a large classic ASP application, is actually very easy to do. Here’s a simple example of what need to be changed at a minimum:

  1. Set oCDOMail = Server.CreateObject(“CDONTS.NewMail”) to:
    Set oCDOMail = Server.CreateObject(“CDO.Message”)
  2. Remove BodyFormat property, oCDOMail.BodyFormat = 0 since it’s unnecessary.
  3. Replace MailFormat property oCDOMail.MailFormat = 0 with MimeFormatted property oCDOMail.MimeFormatted = True.
  4. You may also want to add Charset property.
    oCDOMail.BodyPart.Charset = “utf-8”
  5. Replace oCDOMail.Body with oCDOMail.HTMLBody.
  6. Replace Importance property oCDOMail.Importance = 1 with oCDOMail.Fields(“urn:schemas:mailheader:priority”).Value = 1

The typical page composition to send email using either object can be seen below:

CDONTS

<%
  Dim oCDOMail
               
  Set oCDOMail = Server.CreateObject("CDONTS.NewMail")
               
  oCDOMail.From = ...
  oCDOMail.To = ...

  oCDOMail.Subject = "CDONTS email"
  oCDOMail.BodyFormat = 0
  oCDOMail.MailFormat = 0
  oCDOMail.Importance = 1
               
  oCDOMail.Body = "<html><body><p>This is a test.</p></body></html>"
               
  oCDOMail.Send
               
  Set oCDOMail = Nothing
%>

CDO

<%
  Dim oCDOMail
               
  Set oCDOMail = Server.CreateObject("CDO.Message")
               
  oCDOMail.From = ...
  oCDOMail.To = ...
  oCDOMail.Subject = "CDO email"
  oCDOMail.BodyPart.Charset = "utf-8"
  oCDOMail.MimeFormatted = True
  oCDOMail.Fields("urn:schemas:mailheader:priority").Value = 1
               
  oCDOMail.HTMLBody = "<html><body><p>This is a test.</p></body></html>"
               
  oCDOMail.Send
               
  Set oCDOMail = Nothing
%>

And here’s the two pages compared side-by-side:
CDONTS vs CDOsys Sendmail ASP Code compared

Since CDONTS was deprecated since Windows 2000, ideally, all applications still using it should be rewritten to use the newer CDO object. However, it’s very common to see many enterprises prefer to make CDONTS work on the newer Windows Server to save time and money from re-writing their legacy applications.

August 18, 2015 Filed Under: How To Tagged With: Cdonts Dll, Classic ASP, Windows, Windows Server

How to Fix Could Not Create a Disk Cache Sub-Directory for the Application Pool on IIS

During one of the upgrade projects from Windows Server 2003 to Windows Server 2008 32-bit, the following error occurs:

Source : Active Server Pages

Error: The Template Persistent Cache initialization failed for Application Pool 'AppPoolName' because of the following error: Could not create a Disk Cache Sub-directory for the Application Pool. The data may have additional error codes..

This happened soon after the Windows Server 2003 was in-place upgraded to Windows Server 2008.

One the problems here is after the upgrade, the default ASP Compiled Templates folder got moved but the application config is still pointing to the old path. The second issue is typically the new folder does not have permissions setup properly.

As a background information, the Application Pool for this classic ASP application is run under .NET Framework v2.0 with Managed Pipeline Mode Classic and Identity set to NetworkService.

So here are the steps to fix the issue.

Give Permissions to ASP Compiled Templates Folder

  1. Open Windows Explorer and go to %SystemDrive%\inetpub\temp and you should see a folder called ASP Compiled Templates.

  2. Right-click on the folder and select Properties and click on the Security tab.

    ASP Compiled Templates folder Properties

  3. If this is the first time you access it, you may see the prompt as shown below. Just click the Continue button and you’ll see the Advanced Security Settings for ASP Compiled Templates screen.

    ASP Compiled Templates Security Tab

  4. On the Change owner to: box, select either your group or your NTID and check Replace owner on subcontainers and objects and click OK and Yes when prompted by Windows Security box (All permissions will be replaced if you press Yes).
  5. As instructed, you should close all dialog boxes and go back to the folder’s Properties and click on the Security tab again. This time, you should be able to add a user.
  6. Click on the Add… button and type in Network Service and click OK.
  7. Highlight NETWORK SERVICE and check Full control on the Permissions for NETWORK SERVICE box.

    Set full permission for NETWORK SERVICE for ASP Compiled Templates

  8. Click OK two times to close all dialog boxes

Now we have set the permission, we also need to modify the value of the new path in applicationHost.config file.

Fix Application Config File

  1. Open Windows Explorer and go to %Windir%\System32\inetsrv\config and look for a file applicationHost.config.
  2. Backup applicationHost.config file.
  3. Open applicationHost.config either using a Notepad or any text editor.
  4. Search for “ASP Compiled Templates” and you should find the diskTEmplateCacheDirectory value for the old path.

    Modify path for ASP Compiled Templates in applicationHost.config file

  5. Change the old path to the new one. In this example, the new path is %SystemDrive%\inetpub\temp\ASP Compiled Templates.

    <cache diskTemplateCacheDirectory="%SystemDrive%\inetpub\temp\ASP Compiled Templates" maxDiskTemplateCacheFiles="2000" scriptFileCacheSize="250" scriptEngineCacheMax="125" enableTypelibCache="true" />
    
  6. Save the change and close Notepad.

Along with this error, another error HostableWebCore (Event ID 5053) also occurred, but that was easily fixed by following the steps from this Microsoft Technet article.

Further Reading

Template Persistent Cache Error with Classic ASP under IIS 7
“The Template Persistent Cache initialization failed for Application Pool” on IIS 7 using Classic ASP Issue
Can I delete “C:\inetpub\temp\ASP Compiled Templates” folder?
Event ID 5053 — IIS WAS Configuration

July 23, 2015 Filed Under: How To Tagged With: Classic ASP, IIS, Internet Information Services, Microsoft, Windows Server

How to Manage IIS Servers Remotely with WMSVC

One of the better ways of managing IIS is by doing it remotely from your local computer instead of logging in to the server itself. The Web Management Service (WMSVC) in IIS allows a remote connection into a Windows Server 2012 R2 by using the IIS Manager GUI. This is a much lighter connection compared to do an RDP connection to the server.

Here are the steps we need to do before we can use our local IIS Manager to control other remote IIS servers:

Install Management Service Role

  1. Launch IIS Manager and click on Add roles and features.

    Server Manager Dashboard on Windows Server 2012 R2

  2. Click Next > three times until you’re on the section called Server Roles on the left pane.
  3. Go to the right pane called Roles and expand on Web Server (IIS) and Management Tools and check the Management Service.

    IIS Server Roles Management Service (WMSVC)

  4. Click Next > two times until you see the confirmation screen and click on the Install button. You can click on the Close button even before it’s finished the installation. The only downside if you close it early is that there’s no explicit way for you to see if the installation is already completed.

    IIS Add Roles Confirmation Screen

Configure IIS Remote Connection

  1. Still on the server side, launch IIS Manager to configure the Management Service. On the center pane, you should see an icon called Management Service now under the Management area. Double-click on the icon to launch it.

    IIS Management Service icon

  2. On the Management Service window you can do all other configurations here, but at the very least you need to check the Enable remote connections and click on Apply to save it. Afterwards, click on Start hyperlink to activate it.

    IIS Management Service Enabled

    For increased security you might want to restrict certain IP addresses allowed to connect remotely by configuring the IP Address Restrictions on the Management Service. But basically, this is all you need to enable the IIS server for a remote management.

Configure Remote IIS Manager

Now we’re done with the server side, we just need to configure the remote desktop (or your local PC) that we want to use to manage the IIS from.

  1. Launch IIS Manager on the remote computer by opening Control Panel, then click on System and Security, Administrative Tools.
  2. On the Connections, you can either do a right-click on the Start Page or on the connection icon and select Connect to a Server.

    If you don’t see the Connect to a Server option, then you have to install IIS Remote Administration on your local PC first.

    IIS Manager connect to a server

  3. Enter the Server name and click Next.
  4. Type in your NTID credentials and click Next. After a successful confirmation, just click Finish.

That’s all the minimum configurations you need to do to manage IIS servers remotely via Web Management Service (WMSVC).

Further Reading

How to Manage IIS Servers Remotely
How to Install IIS Management Console on Windows
How to Backup IIS Manager Connections List on Windows
Mastering Windows Server 2019: The complete guide for system administrators to install, manage, and deploy new capabilities with Windows Server 2019, 3rd Edition
Open IIS Manager (IIS 7)

May 27, 2015 Filed Under: How To Tagged With: IIS, Internet Information Services, Microsoft, Windows Server

« Previous Page
Next Page »
Buy me a coffee Support this site
Buy Me a Coffee?

Categories

  • .NET
  • Coding
  • Cybersecurity
  • Database
  • How To
  • Internet
  • Multimedia
  • Photography
  • Programming
  • Resources
  • Review
  • Tips and Tricks
  • Uncategorized
  • Use Case
  • WordPress
  • Writing

Recent Posts

  • How to View Stored Procedure Code in SQL Server
  • How to Find a String in SQL Server Stored Procedures
  • How to Remove Cached Credentials without Rebooting Windows
  • ESP Work Automation: Empowering Enterprises with Streamlined Workflows and Operational Efficiency
  • How to Search for a String in All Tables in a Database

Recent Posts

  • How to View Stored Procedure Code in SQL Server
  • How to Find a String in SQL Server Stored Procedures
  • How to Remove Cached Credentials without Rebooting Windows
  • ESP Work Automation: Empowering Enterprises with Streamlined Workflows and Operational Efficiency
  • How to Search for a String in All Tables in a Database

Tags

.NET .NET Core AdSense ASP.NET Cdonts Dll Classic ASP Code Editor ETL FSharp Genesis Framework Git Google HP Asset Manager HTML5 Hugo IIS Information Security Internet Internet Information Services iOS JAMStack Linux macOS Microsoft Microsoft SQL Server MVC PHP PowerShell Python Simple Mail Transfer Protocol Smtp Server SQL SQL Server SSIS SSMS SSRS Sublime Text Visual Studio Visual Studio Code VPN Windows Windows 8 Windows 10 Windows 2012 Windows Server

Copyright © 2011-2025 IT Nota. All rights reserved. Terms of Use | Privacy Policy | Disclosure