I. The Scriptdom issue:

This issue happens when executing a transaction script, therefore, the Scriptdom need to be ready for the Sitecore 9 installation script.

The error code message:

ERROR_SCRIPTDOM_NEEDED_FOR_SQL_PROVIDER

ERROR_SQLCLRTYPES_NEEDED_FOR_SQL_PROVIDER

Root cause and situation:

Situation 1:

The environment is installed the Visual Studio and MS SQL Server also installed as well. The Scriptdom and SQL CLR Types being installed automatically. However, it still happens then the registration of the dll has been outed to date.

Solution:

Following the link to modify it precisely: https://kb.sitecore.net/articles/0195792.

Situation 2:

The environment only has the MS SQL Server including SQL CLR Types and Script DOM without any installation Visual Studio instance before. The root cause is the Scriptdom need to be registered into the Global Assembly Cache.

We must use the gacutil tool install the Scriptdom.

Solution

Following the link https://forums.iis.net/t/1235672.aspx?Web+Deploy+ERROR_SCRIPTDOM_NEEDED_FOR_SQL_PROVIDER

Or navigate to the NET FX folder where contains the gacutil tool:

Execute the script:

gacutil /i “<<Script dom dll folder>>/ Microsoft.SqlServer.TransactSql.ScriptDom.dll”

II. The exception happens with username and password to connect the master or target server:

Error: Unable to connect to master or target server ‘sc91_Processing.Pools’. You must have a user with the same password in master or target server ‘sc91_Processing.Pools’.

Root cause: The username and password cannot connect to the MS SQL Server.

Solution:

  1. Verify the server name for ensuring its name is correct.
  2. Verify the username and password is correct and it has to an Administration account.
  3. Verify it is enabled the mixed mode authentication type: Windows and Username password authentication.
  4. Please check the instance name which points to the SQL Server 2016 instance when the deployment environment has many SQL Server instances.

III. Cannot start the website:

Error: The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0x80070020)

Root cause: There is a process which uses the same port such as 80 or 443. This issue happens on a machine which has installed Skype or PHP that using the same port 443 or 80.

Solution: Kill the process to prevent blocking the port because of installation or change the configuration port to avoid blocking the port.

I prefer to use TCP View to find the process that using the port 443 and 80.