Sunny Setia's Blog
Wednesday 10 April 2024
How to find the reason of HTTP Error 500.30 - ASP.NET Core app failed to start in Azure App Service
There are multiple ways to find the error. Let's discuss the first approach.
Step 1: Go to Azure Portal
Step 1: Go to App Service
Step 4: Add new Key "ASPNETCORE_DETAILEDERRORS", Set value =1
Monday 19 February 2024
Hosting a Static Website Using Amazon S3
In today's world, most websites are static, which means they run no server-side code and only consist of HTML, CSS, and JavaScript. There is no server-side code to run, so there is no reason to host them on a traditional server.
Hosting static websites on an S3 bucket costs one to two dollars monthly and scales to millions of users.
Let's learn how to create a S3 Bucket and host the website.
Step 1: Create a Bucket
You can open S3 from the Amazon console by searching for S3 or clicking the link below. Console at https://console.aws.amazon.com/s3/
1. Click on Create Bucket
2. Enter your Bucket name and select AWS Region.
3. Uncheck block all public access
4. Keep the remaining settings as it is like bucket versioning etc.
5. Click on the Create Bucket button.
6. You will receive the below message.
Step 2: Upload files
1. Click your Bucket Name
3. Click on the add files button and upload your files.
4. I am uploading index.html for now. You can upload your files (CSS/Images/Javascript and HTML)
Upload your file and then click on the Close Button.
Step 3: Allow Public Access
1. Go to permissions and Edit
2. Uncheck Block all public access and click Save changes.
Step 4: Enable Static website hosting
1. Click on your bucket go to Properties and scroll down.
2. Go to Static Website Hosting and Click Edit
3. Enable Static Website and Specify the index document. I am adding an index.html as a startup page.
4. Click Save Changes.
Step 5: Get URL
1. Click on your bucket Name and Go To Properties.
2. Under static website, you can get the static website URL.
Step 6: Set Bucket Policy
1. Clock on Bucket Name and Go to the Permissions Tab.
3. Copy the below lines and Save. Note: You need to enter your Bucket ARN in Resource. You can find Bucket ARN in the Properties Tab.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "aarn:aws:s3:::tssbucket2024/*"
}
]
}
4. Update ARN and press the Save Changes Button.
5. Open the link in the browser and you can see the Website is running.
http://tssbucket2024.s3-website.eu-north-1.amazonaws.com/
This is all about this article. I hope you like it.
Wednesday 27 December 2023
AWS - Create Copy of DynamoDB Table and learn Backup and Restore Functionality
AWS DynamoDB Back and Restore
There is no direct way to copy DynamoDB tables as of now. So, we must take a backup and restore the table with a new name. Let's learn.
Step 1: Search DynamoDB from the search bar and Click Tabes on the left side. Select the table from the right that you want to take the backup.
Step 2: Click on the Backup Tab, click the Create Back dropdown below, and select Create an on-demand backup.
Step 3: Create on-demand backup, click the Create Backup button.
It will take approx 5 minutes to take the backup and it will change the status to complete.
Step 6: After completion, you can Go to Dynamo DB from the search bar and you can find the backup there then you can press the restore button.
Step 7: Here you can update the table name that you want and press the restore button.
You can see the request submitted successfully.
Step 8: To check the status, you again can go to AWS backup --> Jobs --> and click Restore Jobs.
Step 9: After completion, you can see a new table Under DynamoDb tables
This way you can create a table copy in the DynamoDB.
That's all about this article, thank you.
Sunday 10 December 2023
Create resource on Azure with Terraform
What is Terraform?
Terraform is an Infrastructure as Code (IaC) software tool offered by HashiCorp. You can provision and manage your infrastructure both on-premises and in the cloud with it.
How to execute Terraform Scripts?
Prerequisite
1. You need an Azure Portal account
2. Install Azure CLI on your local system. Download the installer from the below link
Azure CLI Installer
3. Azure Login on command prompt run (az login) command
4. Install Terraform. Download the installer from the below link. Download AMD64 for 64-bit system. Terraform Download
Let's create a small script to create a resource Group in the Azure portal.
Step 1: Create a Terraform file to create a resource group. Paste the below script into the new file and the name should be anyname.tf
provider "azurerm" { version = "~>2.0" features {}}
resource "azurerm_resource_group" "terraform1" { name = "terraform1" location = "eastus"}
provider "azurerm" {
version = "~>2.0"
features {}
}
resource "azurerm_resource_group" "terraform1" {
name = "terraform1"
location = "eastus"
}
Place the file in any drive. I have placed the file in the D drive. Below is my file. My Resource group name is terraform1. You can write any name.
Step 2: Intialize Terraform.
My file is on D drive. So I have executed the command from D drive.
terraform init
Step 3: Terraform Plan
Execute command terraform plan
Step 4: Terraform Apply
Execute command terraform apply
It will prompt you to perform this action? Write Yes and Enter.
You can see the success message above. Go to the Azure portal, and you can see a new resource group with the name terraform1.
That's all about this article.
Thursday 20 July 2023
Deploy your website to an Azure VM or Local Machine IIS.
The first step is to ensure IIS is installed on the VM. Open the browser and type localhost to ensure IIS is running. Or type inetmgr in Run. If it is not working this means IIS is not installed.
Install IIS
1. Open the control panel
2. Go To Programs And Features
3. Click on Turn Windows Features on or off
4. Click on Internet Information Services (IIS)
5. Press Ok
It will install IIS on your system. Now when you open localhost you can see the below screen.
7. You can publish your code to Default Web Site or create a new Website.
8. Let's publish your code on the default website. Right-click on the default website and click Explore. Publish your code and paste it here.
9. Open the browser and type localhost. You can see your website is running. If you are getting below error
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
This means you need to install the .Net Runtime on your VM. My API is in .Net 7. So, you can download .net 7 from the link below or from Google based on the specific version.
.Net runtime
10. Hurrah, now you can see your website is running.
This is all about this article. Thank you.
Saturday 1 April 2023
Generate C# .NET Classes of entire database through SQL Scripts Automatically
Let's learn how to generate C# Classes from SQL Scripts. Generate C# classes automatically for the entire database.
Step 1: Copy the query below and run it in the SQL Editor (New Query).
Step 2: Pass the table name as a parameter and run the query.
You can find the entire class in the output below.
DECLARE @TableName sysname = '' DECLARE @objectId int=1 WHILE EXISTS (select 1 from sys.objects where type='U' and name!='__RefactorLog' and object_id > @objectId) BEGIN SELECT @objectId = MIN(object_id) FROM sys.objects WHERE TYPE='U' and NAME!='__RefactorLog' AND object_id > @objectId SET @TableName=(SELECT NAME FROM sys.objects WHERE object_id=@objectId)Here is the output
DECLARE @Output VARCHAR(MAX) = 'public class ' + @TableName + ' {' SELECT @Output = @Output + ' public ' + ColumnType + NullSign + ' ' + ColumnName + ' { get; set; }' FROM ( SELECT replace(col.name, ' ', '_') ColumnName, column_id ColumnId, CASE typ.NAME WHEN 'bigint' THEN 'long' WHEN 'binary' THEN 'byte[]' WHEN 'bit' THEN 'bool' WHEN 'char' THEN 'string' WHEN 'date' THEN 'DateTime' WHEN 'datetime' THEN 'DateTime' WHEN 'datetime2' THEN 'DateTime' WHEN 'datetimeoffset' THEN 'DateTimeOffset' WHEN 'decimal' THEN 'decimal' WHEN 'float' THEN 'double' WHEN 'image' THEN 'byte[]' WHEN 'int' THEN 'int' WHEN 'money' THEN 'decimal' WHEN 'nchar' THEN 'string' WHEN 'ntext' THEN 'string' WHEN 'numeric' THEN 'decimal' WHEN 'nvarchar' THEN 'string' WHEN 'real' THEN 'float' WHEN 'smalldatetime' THEN 'DateTime' WHEN 'smallint' THEN 'short' WHEN 'smallmoney' THEN 'decimal' WHEN 'text' THEN 'string' WHEN 'time' THEN 'TimeSpan' WHEN 'timestamp' THEN 'long' WHEN 'tinyint' THEN 'byte' WHEN 'uniqueidentifier' THEN 'Guid' WHEN 'varbinary' THEN 'byte[]' WHEN 'varchar' THEN 'string' ELSE 'UNKNOWN_' + typ.name END ColumnType, CASE WHEN col.is_nullable = 1 and typ.name IN ('bigint', 'bit', 'date', 'datetime', 'datetime2', 'datetimeoffset','decimal','float','int','money','numeric','real', 'smalldatetime','smallint','smallmoney','time','tinyint','uniqueidentifier') THEN '?' ELSE '' END NullSign FROM sys.columns col INNER JOIN sys.types typ on col.system_type_id = typ.system_type_id AND col.user_type_id = typ.user_type_id WHERE object_id = object_id(@TableName) ) temp order by ColumnId set @Output = @Output + ' }' print @Output
END
If you want to generate the classes of a specific table then follow the below article.
Get Images/Files from Azure Storage Blob/Container .NET C#
There are many ways to get files from Azure Storage in .Net and C#. We will discuss 3 different ways today. Before that let's create a storage container on Azure Portal.
1. Create a Storage account in Azure Portal
2. Click on the container, create a new container, and select the public access level.
3. Click on the "Access keys" option and copy the connection string. We will use it in our code.
Let's learn different ways to get the files to Azure Storage. For that, you need to install Azure.Storage.Blobs package from Nuget and you can run the below code based on your requirements.
1. Get bytes/base64 string to Azure Storage
[HttpGet(Name = "GetImageBytes")]public async Task<List<BlobImageModel>> GetImageBytes() { var connectionString = "pass your connection string here"; var container = new BlobContainerClient(connectionString, "containernamehere"); var files = new List<BlobImageModel>(); await foreach (var file in container.GetBlobsAsync()) { string uri = container.Uri.ToString(); var name = file.Name; var fullUri = $"{uri}/{name}"; var blobClient = container.GetBlobClient(file.Name); if (blobClient.ExistsAsync().Result) { using (var ms = new MemoryStream()) { blobClient.DownloadTo(ms); var bytes = ms.ToArray(); files.Add(new BlobImageModel { Name = name, ImageBytes = bytes }); } } } return files; }
public class BlobImageModel { public string? Name { get; set; } public byte[]? ImageBytes { get; set; } }
2. Get Images with URLs from Azure Storage
[HttpGet(Name = "GetImagesURL")] public async Task<List<BlobResponseModel>> GetImagesURL() { var connectionString = "connection string here"; var container = new BlobContainerClient(connectionString, "containernamehere"); var files = new List<BlobResponseModel>(); await foreach (var file in container.GetBlobsAsync()) { string uri = container.Uri.ToString(); var name = file.Name; var fullUri = $"{uri}/{name}"; var blobClient = container.GetBlobClient(file.Name); if (blobClient.ExistsAsync().Result) { files.Add(new BlobResponseModel { Uri = fullUri, Name = name, ContentType = file.Properties.ContentType }); } } return files; }
public class BlobResponseModel{public string? Uri { get; set; }public string? Name { get; set; }public string? ContentType { get; set; }}
If you want to upload the image to azure storage, follow the article below.
Upload File to Azure Storage
This is all about the Get image from Azure Storage.
Subscribe to:
Posts (Atom)
How to find the reason of HTTP Error 500.30 - ASP.NET Core app failed to start in Azure App Service
HTTP Error 500.30 - The ASP.NET Core app failed to start If your web app is throwing an error HTTP error 500.30 then how to find the root ca...
-
Selenium Driver Setup If you are getting an error like " The chromedriver.exe file does not exist in the current directory"...
-
If you commit the changes by mistake and want to remove that commit or want to go to the last commit then here are some simple commands. In...
-
This error normally occurred when you created a report on one SQL version and deploying/opening on another SQL version. I've created ...