IT Nota

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

How to Solve Intermittent 403 Error in IIS

Symptoms

You can load the page just fine, but after going through the pages quickly or by opening several tabs at once, you see a 403 error:

IIS 403 Error Forbidden Access is denied

403 - Forbidden: Access is denied.

You do not have permission to view this directory or page using the credentials that you supplied.

This is a bit misleading since you might right away think that the you do not have permission to access the web page or the folder. But you know you’re authenticated because you could see the page a few seconds ago and the problem is intermittent. So why do you get 403 Forbidden: Access is denied?

What to Check

The first thing you want to check is the IIS log and look for the specific error code (403) with the timestamp when you see the 403 error. You might see something similar to the following:

2022-02-02 22:33:58 10.20.128.70 POST /ResultPage.asp - 80 - 192.168.1.25 Mozilla/4.0... https://www.itnota.com/CheckPage.asp 403 501 0 0

Open up the IIS log in a text editor and search for ” 403″ (without quotes). A leading whitespace is added to narrow down the search. You can also use regular expression to be precise but for this exercise, I think it’s an overkill.

IIS Log Search for 403 501 error in a text editor

One key thing we need to pay attention to is to check the whole error code by looking the one next to the 403 → 501. So to be exact, the error code is actually 403.501.

If you check the definition of this error here, you’ll soon find out this error has nothing to do with permission in the traditional sense of how we understand it:

403.501 - Forbidden: Too many requests from the same client IP; Dynamic IP Restriction Concurrent request rate limit reached.

This is the real issue and it’s easier to fix once we’ve figured out that we need to look at the Dynamic IP Restriction.

So now we have three options:

  1. Disable Dynamic IP Restriction.
  2. Increase the Maximum number of concurrent requests.
  3. If your connection comes from the same IP address (i.e. F5), then you can create a whitelist based on its IP address.
  4. Maybe four, as you can combine option 2 and 3 if needed.

Whether you choose option 1, 2, or 3, all the settings are in the same location in IIS.

Steps

  1. Launch IIS Manager and on the left pane window, select the site that you want to modify.

  2. In the middle window, double-click on the IP Address and Domain Restrictions.

    IIS Settings IP Address and Domain Restrictions

  3. If you want to do either option 1 or 2, click on Edit Dynamic Restriction Settings… on the right window pane.

    IIS Edit Dynamic Restriction Settings Maximum Concurrent Requests

  4. Option 1: To disable the Dynamic IP Restrction, uncheck all the checkboxes and click OK.

  5. Option 2: Modify the number in the Maximum number of concurrent requests: and still leave the Deny IP Address based on the number of concurrent requests checked. Then click OK.

  6. Option 3: You can either leave the Dynamic Restriction Settings alone, or you may combine that setting with the whitelist as well.

  7. In IP Address and Domain Restrictions window, click on Add Allow Entry… on the right window pane.

    IIS Add Allow Entry window on IP Address and Domain Restrictions settings

    Note: All your modification is saved in applicationHost.config file in the server as indicated on the bottom of the IP Address and Domain Restrictions window.

  8. Add the IP Address you want to allow entry that’s not limited by the Dynamic Restriction Settings in the Specific IP address: textbox. Or you can enter a range of IP addresses under the IP address range: textbox. Then click OK.

    IIS IP Address and Domain Restrictions - Add Allow Entry

Additional Note

As mentioned earlier, all the settings we did above is saved applicationHost.config file. The file can be found in the following directory:

%windir%\system32\inetsrv\config

And all the steps above can be skipped if you edit the file using a text editor. I personally like to use GUI to prevent typos so just be aware of the risk of editing this file by hand.

  <location path="##Your-website-name-in-IIS##">
    <system.webServer>
      <asp appAllowClientDebug="true" appAllowDebugging="true" />
      <security>
        <ipSecurity>
          <add ipAddress="192.168.1.25" allowed="true" />
        </ipSecurity>
        <dynamicIpSecurity>
          <denyByConcurrentRequests maxConcurrentRequests="1" />
          <denyByRequestRate maxRequests="20" />
        </dynamicIpSecurity>
      </security>
    </system.webServer>
  </location>

That’s it.

Once you saved all the settings, the new change should take effect immediately.

Further Reading

The HTTP status code in IIS 7.0 and later versions
IIS 8.0 Dynamic IP Address Restrictions
Using Dynamic IP Restrictions
IIS Dynamic IP Restrictions whitelist

February 3, 2022 Filed Under: How To Tagged With: IIS, Internet Information Services, Microsoft, Windows Server

How to Show Hidden Folders and Files in Mac Finder

This gets asked a lot especially from someone who just switched from Windows to macOS. When you open a New Finder Window on your mac. You might want to see all the hidden files in your folder as well.

The quickest way to do it is just by using a keyboard shortcut:

  1. Open a New Finder Window on the folder where you want to see the hidden files.
  2. Press ⌘ Command + ⇧ Shift + . (Period). To be exact, hold down the Command and Shift keys together, then press the Period key.
  3. The hidden files and folders will appear semi-transparent in the finder (see below).

Hidden Folders and Files in Mac Finder, Before and After

Of course, some people may find it too distracting, in which case you can always hide them again by using the same keyboard shortcut.

February 1, 2022 Filed Under: How To Tagged With: macOS

How to Solve MS Office VBA Compile Error UserAuthentication

This is such a persistent issue that hopefully will die down soon. In a corporate world where there are so many legacy systems though, and this comes up more than we want to admit.

This happened in one corporation that has one department relies on various macro-enabled Microsoft Word documents to process requests. One morning, one processor encountered a Visual Basic for Applications error in one of their Microsoft Word forms.

MS Word VBA Compile error UserAuthentication

Microsoft Visual Basic for Applications

Compile error in hidden module: UserAuthentication.
This error commonly occurs when code is incompatible with
the version, platform, or architecture of this application. Click
"Help" for information on how to correct this error.

When you encounter this, right away check both the MS Word doc (or docx) file and what version of MS Words is used to open the file.

As the error indicates, the keyword here is code incompatible with the version… of this application.

In our case, we did not have to check their document library since we know their forms were really old. So we just needed to check their MS Office version.

If you use MS Word 2016 or later, just go to File, Account and click on About Word and check on the header. In this very specific case, the end user used a 64-bit version of MS Word to open the old document and that was the cause of error.

Microsoft Word 64-bit Version

Once we have this information, there were two options that the client could take. Either, the forms need to be rewritten or the user’s MS Word need to be downgraded to a 32-bit version. The latter option of course is easier and faster.

The client opted for a downgrade to resolve the issue.

January 24, 2022 Filed Under: How To Tagged With: Microsoft, Office

How to Install Fonts on macOS using Homebrew

If you have used Homebrew to manage your packages, you can also use it to install fonts on your macOS so long as the fonts are available. And as you’ll see in the example below, this is way easier (and quicker) than downloading the fonts and install them conventionally.

If you haven’t, it’s quick to install Homebrew. Just open your Terminal and type in the following:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Homebrew Package Manager installation page

For the latest update of this command, please check Homebrew’s website. You just need to copy the command line and paste it in your Terminal.

Here are some commands you need to know. You need to run this once:

brew tap homebrew/cask-fonts

Then, as I want to try to install some fonts with ligatures from Microsoft such as Cascadia Code and Fira Code, I want to search them first if those fonts are available.

To search the font, you can type in this command:

brew search font- | grep cascadia

Which would give the result (at this time):

font-cascadia-code
font-cascadia-code-pl
font-cascadia-mono
font-cascadia-mono-pl

We’re in luck, it’s available.

Important: The font name is all in lowercase and it’s case-sensitive. For example, you will not find anything if you typed in “Cascadia” as your search word.

Now, we just need to install the Cascadia Font by typing this command:

brew cask install font-cascadia-code

Once completed, your font is installed and active. But in this specific example, if you use Visual Studio Code, even though the font is active, you still need to enable the font ligatures before you can see it.

If you use Sublime Text on the other hand, the change is instant.

That’s all there is to it. So far, we’ve just installed one font Cascadia Code, if you also want to install Fira Code font, you can do it on your own. That would be a good exercise for you.

Additional Note

If you just run the command brew search font- without grep, you will get a list of all available fonts you can install via Homebrew.

Further Reading

How to Enable Font Ligatures in Visual Studio Code

January 21, 2022 Filed Under: How To Tagged With: macOS

How to Enable Font Ligatures in Visual Studio Code

Ligatures are special characters in a font that combine two or more characters into one.

For example, if you use a ligatured font, whenever you type != it will become ≠.

Aside from the arguments whether using a ligatured font is a good or bad thing in your code, here’s what you need to do if you want to enable it in Visual Studio Code.

For this example, we’ll use Cascadia Code (NOT Cascade as shown in the screenshots) and Fira Code. If you want to follow along, you can download the fonts by using the download link below.

On macOS, instead of downloading and installing the fonts manually, you can use Homebrew instead, which is way easier and quicker.

  1. Launch Visual Studio Code.
  2. Press CTRL+, (or Cmd ⌘+, on macOS) to open Settings.
  3. Under Settings, you can see and edit what font you want to use. The way it’s setup now, Cascadia Code is prioritized and Fira Code is used only if Cascadia Code is not available.

    Visual Studio Code Font Family in Settings

  4. To enable the ligatures though, we need to edit the settings.json file. We can type in the word “ligatures” in the Search settings box. Then click on the link Edit in settings.json to open the json file.

    Visual Studio Code Font Ligatures in settings.json

  5. You can add editor.fontLigatures and set it to true under the editor.fontFamily.

    Visual Studio Code font in settings.json

    {
      "editor.fontFamily": "'Cascadia Code', 'Fira Code'",
      "editor.fontLigatures": true,
    
    [deleted for brevity]
    
    }
    
  6. Close the settings.json tab and you should be able to see the ligatures.

Now, we can test if we can see the font ligatures work.

Testing font ligatures in Visual Studio Code

If you did not see any change, make sure you restart Visual Studio Code before trying it again.

This setting also works for Visual Studio Codium.

Download

Fira Code: free monospaced font with programming ligatures
Microsoft Cascadia Code Font

Further Reading

Ligatures in Programming Fonts are a Terrible Idea
How to Install Fonts on macOS using Homebrew

January 19, 2022 Filed Under: How To Tagged With: Code Editor, Microsoft, Visual Studio Code

« 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 Setup WordPress Installation on Linux
  • 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

Recent Posts

  • How to Setup WordPress Installation on Linux
  • 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

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-2026 IT Nota. All rights reserved. Terms of Use | Privacy Policy | Disclosure