In Focus

Publish Website On IIS Using AppCmd

In this article, we will discuss how to Publish Website In IIS Using AppCmd.

Introduction

In this article, we will learn the most useful and powerful command line tool, AppCmd, for publishing or hosting a website on IIS. Using the AppCmd tool, we can host static as well as a dynamic website (ASP.NET Webform, MVC, Dot Net Core etc) easily.

Description

I assume you are aware of (or have knowledge of) how to Host or Publish Website in IIS using inetmgr. This will help you understand AppCmd.exe.

AppCmd.exe is the command line tool for managing IIS 7 and above. It provides an easy way to manage a website without Graphical User Interface.

Some of the things you can do with AppCmd,

  • Create and configure sites, apps, application pools, and virtual directories
  • Start and stop sites, and recycle application pools
  • Search, manipulate, export, and import IIS and ASP.NET configuration
How to Use AppCmd.exe

The AppCmd.exe command line is built on top of a set of top-level server management objects, such as Site and Application. These objects expose methods that can be used to perform various actions on those objects, and object instances expose properties that can be inspected and manipulated.

AppCmd.exe is located in the %systemroot%\system32\inetsrv\ directory. Because it is not a path of the PATH automatically, you need to use the full path to the executable when executing commands like in %systemroot%\system32\inetsrv\AppCmd.exe list sites. Alternatively, you can manually add the inetsrv directory to the path on your machine so that you can access AppCmd.exe directly from any location.

Note

Run Command Prompt as Administrator to using AppCmd.

In this article, we learn basic command to host websites.
  • List all available commands and actions in AppCmd
    1. AppCmd  
    2. or  
    3. AppCmd /?   
App CMD Supported object 

From the above screenshot, it is clear that Command Prompt is run as administrator and run AppCmd which return list of supported Command.
  • List all hosted or published websites in IIS.
    1. AppCmd List Site  

In the above screenshot, I have run List Site command which returns all published site with bindings and state of site e.g. Started or Stop.
  • Create the website using AppCMD
    1. APPCMD add site /name:WebByAppCMD /bindings:"http/*:94:" /physicalPath:"C:\Users\Mepani\Desktop\2018 Article\Kendo Grid" -virtualDirectoryDefaults.userName:USERNAME -virtualDirectoryDefaults.password:PASSWORD  
For any website hosting we require information as above like Site Name, Bindings (Protocal, hostname), Physical Path, Credential for access or permission to folder path.

Sometimes, if you don't provide access/permission to a physical path then you might be getting Access denied error.
  • View Newly Hosted or published website
    1. appcmd.exe list site "WEbByAppCMD"  
  • Start and stop hosted or publish a website
    1. appcmd.exe start site "WEbByAppCMD"  
    2. appcmd.exe stop site "WEbByAppCMD"  
  • Delete or remove published or hosted website from IIS
    1. appcmd.exe delete site "WEbByAppCMD"  
 App CMD Create website

In the above screenshot, we have covered all the above site commands except delete. Possible issue or challenges might be faced during command line website hosting niclude,
  • Site name already created
  • Port is already in use
  • Bad Request -Invalid hostname
 Reference link
  • https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc731196(v=ws.10)
  • https://blogs.msdn.microsoft.com/mikezh/2012/04/23/iis-appcmd-quick-reference/ 
Hope you enjoyed this and learned a new way to host or publish a website using AppCmd. 

Conclusion

In this article, we have learned about command line tool AppCmd to manage a website in IIS with fewer easy commands.