As i understand you have implemented your condition wrong
if (ProfilePictureFileUploader.HasFile == true) then pick image from uploader and set in session, otherwise pick default image from local hard drive location.
In your case you are checking as
if uploader has file
then
pick image from local hard drive
else
pick image from uploader i.e.
ProfilePictureFileUploader.PostedFile
so in else part you will get null exception, as there is no Posted File.
ReOrder your code as
if (ProfilePictureFileUploader.HasFile == true)
{
System.IO.Stream fs = ProfilePictureFileUploader.PostedFile.InputStream;
System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
byte[] profilepictureBytes = br.ReadBytes((Int32)fs.Length);
Session["ProfilePictureBytes"] = profilepictureBytes;
}
else
{
byte[] br = File.ReadAllBytes("D:/Projects/SampleProject/Images/Default Image.jpg");
Session["ProfilePictureBytes"] = br;
}