Skip to main content

Posts

Local Sitecore 9 install

This is a post of my experience installing Sitecore 9.2 locally.

Make sure you having the following pre-requisites

1. Operating system - Windows server 2016+ or Windows 10 64 bit.
2. Install Solr 7.5.0 locally
3. .NET Core 2.1.7 Windows hosting module 
4. .NET Framework 4.7.2 I use this site to verify and update
5. Turn on Windows IIS and .NET 4.7 features (refer image below)
6. IIS version 10+
7. Microsoft SQL Server 2016 SP2+. Make sure to have a valid username/password to create and manage sitecore databases.

I then installed Sitecore 9.2 by using the new Sitecore Install Assistant (SIA). I downloaded the Sitecore 9.2 graphical setup package for XP single and ran the setup.exe file as an administrator.

I referred to the this blog post for the installation steps.

Make sure to have the following handy before starting the installation:
- Sitecore license fie path: - Solr installed at: example: https://solr:8983/solr/ - Solr installed file path: example: D:\solr\solr-7.5.0 - Solr serv…
Recent posts

Local Install of Solr for Sitecore 9

One of the pre-requisites of installing Sitecore 9 locally is Solr. For my local Sitecore 9.2 installation I had to install Solr 7.5.0. I found many articles online and especially found this one useful.

Here are the 3 steps I following to install Solr 7.5.0 locally

Step 1:
Install java from the oracle website. After the installation, assuming that you have installed java 13.0.1, add the following Path environment variable (shown as #2 in below image)
C:\Program Files\Java\jdk-13.0.1\bin

To verify, open the cmd prompt and run the command "java -version"
You should get something like the following if it is installed correctly.

C:\Windows\System32> java -version java version "1.8.0_221" Java(TM) SE Runtime Environment (build 1.8.0_221-b11) Java Hotspot(TM) Client VM (build 25.221-b11, mixed mode)

Step 2:
Install JRE locally. I installed it from the cnet website. After the installation, assuming that you have installed jre 1.8.0_221 set the JAVA_HOME environment va…

Sitecore 9 un-install

Sitecore 9 can easily be setup using the Sitecore Install Assistant (SIA). But if you were like me you installed it a few times before you got it right and were left with a few Sitecore 9 instances that you would like to clean up. I'm hoping Sitecore comes up with their own un-installer, but in the meantime here are the steps I followed to cleanup my un-used Sitecore instances.

Assuming the Sitecore 9.2 instance we are going to un-install has the Sitecore prefix SC92

1. Remove the windows services (you can find your service names by opening your local windows services) with "sc.exe delete [servicename]" in cmd prompt.
   I ran the following 3 statements from the cmd as administrator

sc.exe delete SC-92xconnect.dev.local-MarketingAutomationService sc.exe delete SC-92xconnect.dev.local-ProcessingEngineService sc.exe delete SC-92xconnect.dev.local-IndexWorker

2. Remove the IdentityServer and xConnect website and application pools from IIS. I right clicked and Removed the fo…

Un Lock Sitecore admin account

There are times when you
- Upgrade Sitecore locally
- Restore databases in your local Sitecore instance.

And you are no longer able to login to the Sitecore admin interface with the default admin username and password b.

When this happens you can unlock the Sitecore admin account and reset the password back to b.

To do this copy this aspx file to your Website\sitecore\admin folder (and overwrite existing file)

Next make sure your local web.config (in the root Website) folder has the following settings
minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0"

Lastly go to the following page
https://YourSitecore.com/sitecore/admin/unlock_admin.aspx



And click the Unlock Administrator button.
That's it, you can now login to your local Sitecore instance.
Happy Sitecoreing!



Using Okta Authentication for a Sitecore client site

I recently had a project where we had to add a new Sitecore site to an already multi site Sitecore 8.2 Update 7 instance. This new site had to integrate with Okta to manage user authentication. I found many articles online that integrated Okta and Sitecore's admin interface but I could not find one that just integrated Okta with a client Sitecore site.

My first step was to use Okta's available ASP.NET MVC projects on their Dev site and test them out. This worked very well with the first Authenticated method I tried which was WS-Fed. But when I tried to use the same authentication method with a site in Sitecore I got errors in my logs like the following:

Sitecore.Security.Principal.SitecoreIdentity does not contain a definition for Claims

Claims are available in HttpContext.User.Identity but not in Sitecore.Security.Principal.SitecoreIdentity, and since we are using a Sitecore site we could not read the claims. I tried to make claims work in Sitecore using various online articl…

Local setup of a SSL certificate

Creating a local ssl certificate is easy. You can do so by creating a self signed certificate in IIS and assigning that to you local site. However you may notice that with newer TLS 1.2 standard, tools like TDS (Team Development for Sitecore) and others stop working and complain about local certificates with errors like

Exception: System.Security.Authentication.AuthenticationException
Message: The remote certificate is invalid according to the validation procedure.

To fix this issue, these were the steps I followed. Hope this helps others that are facing similar issues.

1. Run the following Powershell command to create a local self signed cert (replace xxx.local.com with your local dns):

New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -DnsName "xxx.local.com" -FriendlyName "xxx.local.com" -NotAfter (Get-Date).AddYears(10)
2. Win Key + search for "Manage computer certificates". Make sure your certificate is in the following 3 locations (…

Async Task .Result or .Wait() not working in MVC web application

I had a piece of async code that worked as a console application in Visual Studio 2015. I had to move this code into my MVC web application.

In the code, basically you pass an ID to an Api and it returns a document corresponding to that ID. The issue was, there needed to be 2 calls to the Api. As part of the first call you pass the ID and the Api returned a filename. You then pass the filename to the second call and it returns the corresponding document.

This worked fine in a console application. But when I tried to port it into a MVC web application it did not work. Frankly async calls work fine in MVC applications, but in instances like mine, I needed the code to be synchronous, since the second call to the Api should only start after the first call returns valid data. I even tried to make the code synchronous, but this just caused my application to hang at the .Result line (code below)


ORIGINAL CODE: var fileName = await obj.PostAsync(); await obj.DownloadFile("fileId=" +…