How to migrate IIS6 web.config to IIS7

If you are using custom httpHandlers or httpModules, you would need to
run the migration command below.


C:\> %systemroot%\system32\inetsrv\APPCMD.EXE migrate config "domain_name.com/virtual_directory"
Successfully migrated section "system.web/httpModules".
Successfully migrated section "system.web/httpHandlers".

Now if you are going to migate the web.config inside the WEB_ROOT directory itself and not inside any virtual directory don’t miss a forward slash, / after the domain name.

eg:


C:\> %systemroot%\system32\inetsrv\APPCMD.EXE migrate config "domain_name.com/"
Successfully migrated section "system.web/httpModules".
Successfully migrated section "system.web/httpHandlers".

Otherwise you may get an error like below,

ERROR ( message:Cannot find APP object with identifier “domainame.com”. )

A good article to refer is available at http://blogs.msdn.com/tmarq/archive/2007/08/30/iis-7-0-asp-net-pipelines-modules-handlers-and-preconditions.aspx

Post to Twitter Tweet This Post

Continue Reading

Solving “Service Unavailable” message just for one website in Plesk and IIS7

A particular website of a client was getting “Service Unavailable” message for just one website in a Plesk server while all other website was working fine. No logs in Event Viewer were giving any clue. However when someone changed the Application pool to use the shared pool plesk(domain2.0)pool, it was working fine which deserted the issue to application pool issue.

Approach to the solution

  1. Check the application pool running, by taking Start => Run => inetmgr
  2. Find out which application pool a website is running by taking the IIS Manager => Sites => domain.com (domain in question) and right column of options => Advanced Settings => General => Application pool
  3. Expand application pools and check whether the application pool is stopped and if it is in the stopped status, start it.
  4. As a good measure, please recycle the application pool as well.
  5. If it fails to start, check whether the application pool generates any event logs. Next measure is to reset the password of IUSR_username
  6. For resetting the password of IUSR_username, go with the below steps,
    1. Login to the server by RDP
    2. Retrieve password of the domain owner from Parallels Panel database running this command:

      “%plesk_bin%”\dbclient –direct-sql –sql=”select su.login, a.password from accounts a, sys_users su  where a.id=su.account_id and su.login=’username’ ”

      login       password
      username password

      where username is an owner of the domain, which can be taken from Plesk => Domains => Web Hosting Settings

    3. Synchronize system password with accordance of retrieved one as follow:

      net user IUSR_username password

  7. Try restarting the application pool again and if is works well, all is good, or else, check to see further options, like Handler Mappings or ISAPI_Filters. But Handler Mappings or ISAPI filters usually affects only one or two types of file extensions.

Post to Twitter Tweet This Post

Continue Reading

MSSQL – Two common issues while restoring a backup and it’s solutions

There are two most common issues while restoring the database (usually ending in .bak format).

First error
System.Data.SqlClient.SqlError: The backup set holds a backup of a database other than the existing ‘user_database‘ database. (Microsoft.SqlServer.Express.Smo)

Solution for First error

  • Connect to the database server
  • Logging in to the web server

  • Go to the restore option and select Restore Database

  • On the Restore page that loads up, make sure that the Destination for restore has the database you want to restore and in the Source for Restore, choose From device: And browse by clicking [..] and Add the file location there, the location where your database backup resides. You may need to browse the backup. If you get permission denied, copy the bak in the MSSQL folder.

    Attaching the database backup file

    Attaching the database backup file

  • Restore it. Make sure that the Restore Checkbox is selected. And Click OK. And get ready for the error :)

  • Here comes the first errorSystem.Data.SqlClient.SqlError: The backup set holds a backup of a database other than the existing ‘user_database’ database. (Microsoft.SqlServer.Express.Smo)
    And the solution is to go to Options -> Overwrite Existing Database . But if you aren’t so lucky, you will be welcomed by another error as seen below. where it’s solution is to edit the path from D:\ to C:\ or whichever Drive, where your MSSQL is installed.

    System.Data.SqlClient.SqlError: Directory lookup for the file “D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\user_database.mdf” failed with the operating system error 3(The system cannot find the path specified.). (Microsoft.SqlServer.Express.Smo)

  • Both THE Solutions are in a single screen shot. The final screenshot :)

  • Just edit D:\ProgramFiles\Microsoft… to C:\ProgramFiles\Microsoft or whichever directory where you installed the MSSQL server. Don’t keep database server on your system drive C: though.
  • Post to Twitter Tweet This Post

    Continue Reading

    HTTP 405: The HTTP verb used to access this page is not allowed

    On an html page, one of our customers was getting this issue. Despite asking him to change the extension to .asp, he insisted to have html extension and still process the HTTP verbs, where it is POST method here.

    Situation becomes like this a static page wants to be read a dynamic page and process the values obtaining from POST method. Solution is to make the .html read as .asp with asp dll, just like we do html parse as php in Linux boxes Here are the steps to do it on a Windows 2003 machine

    1. Start –> Run –> inetmgr
    2. Websites –> website/domain name in question
    3. Right Click on the domain –> Properties –> Home Directory –> Configuration
    4. In the tab Mappings –> Add an extension for .html and .htm , if it is missing (most cases it will be missing) and edit to add all verbs (POST, GET, HEAD are needed)
    5. Fields to be added are as below,

    Executable : C:\WINDOWS\system32\inetsrv\asp.dll
    Extension : .html
    Limit to : GET,HEAD,POST,TRACE

    And Click Apply, OK :) All is well !!

    Post to Twitter Tweet This Post

    Continue Reading

    Bad Request (Invalid Hostname) when accessing via IP

    Customer wanted to have a dedicated IP, but once I change the IP from the plesk control panel, I couldn’t get the website when accessed using IP. Instead, it was giving me the plesk control panel’s default page. Reason ? Default Website was having the IP as “All Unassigned”. Set that to the main IP address. But after that I was getting a new error.

    What I could get was “Bad Request (Invalid Hostname)” in bold letters. Here is what I did to fix the same.

    Start -> Run -> inetmgr -> Expand the (+) -> Websites -> Right click on the domain name -> Take Properties -> Website -> IP Address (make sure that it has the dedicated IP assigned there) and then click “Advanced”

    Add/Edit Web Site Identification

    IP Address : Choose the dedicated IP from drop down list
    TCP/IP Port : 80
    Host Header Value : Leave it blank (Important)

    Leaving the Host Header Value should fix the issue and fetch the website when accessing it using the IP.

    Post to Twitter Tweet This Post

    Continue Reading

    Your email:

     

    Post to Twitter Tweet This Post

    About this blog

    This blog, acts as a knowledge repository for the world and is unofficial! Anything we find interesting in the cyber world will go here. Most cases, this blog will reflect the happiness of our staff in reaching successful solution to an issue (s)he worked on. A reference for other fellow SAGEs who come across similar issues later