Öğretici: ASP.NET Core'Azure SQL Veritabanı uygulama Azure App Service

Azure App Service, Azure'da yüksek oranda ölçeklenebilir, kendi kendine düzeltme eki uygulama hizmeti sağlar. Bu öğreticide, bir ASP.NET Core uygulamanın nasıl oluşturularak SQL Veritabanı. Bu işi tamamlasanız, App Service'de çalışan bir .NET MVC Windows.

Azure App Service Linux işletim sistemini kullanarak yüksek oranda ölçeklenebilir, kendi kendine düzeltme eki uygulama web barındırma hizmeti sağlar. Bu öğreticide, bir ASP.NET Core uygulamanın nasıl oluşturularak bir SQL Veritabanı. Bu işi tamamlasanız, ASP.NET Core'de çalışan bir MVC Linux üzerinde App Service.

App Service’te çalışan uygulama

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Azure’da SQL Veritabanı oluşturma
  • Bağlan bir ASP.NET Core uygulamayı SQL Veritabanı
  • Uygulamayı Azure’da dağıtma
  • Veri modelini güncelleştirme ve uygulamayı yeniden dağıtma
  • Azure’daki tanılama günlüklerinin akışını sağlama
  • Uygulamayı Azure portalında yönetme

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Önkoşullar

Bu öğreticiyi tamamlamak için:

  • Azure Cloud Shell'Da Bash ortamını kullanın.

    Cloud Shell’i yeni bir pencerede başlatma

  • Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantılarını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

Yerel ASP.NET Core uygulaması oluşturma

Bu adımda, yerel ASP.NET Core projesini ayarlarsınız.

Örnek uygulamayı kopyalama

  1. Terminal penceresinde, cd ile bir çalışma dizinine gidin.

  2. Örnek depoyu kopyalamak ve kökünü değiştirmek için aşağıdaki komutları çalıştırın.

    git clone https://github.com/azure-samples/dotnetcore-sqldb-tutorial
    cd dotnetcore-sqldb-tutorial
    

    Örnek proje, Entity Framework Core kullanan temel bir CRUD (oluşturma-okuma-güncelleştirme-silme) uygulaması içerir.

  3. Varsayılan dal'ın olduğundan emin main olun.

    git branch -m main
    

    İpucu

    Dal adı değişikliği, dal adı App Service. Ancak, birçok depo varsayılan dallarını olarak değiştirmektedir (bkz. Dağıtım dallarını değiştirme) bu öğreticide, bir deponun 'den nasıl main dağıtın? main

Uygulamayı çalıştırma

  1. Gerekli paketleri yüklemek, veritabanı geçişlerini çalıştırmak ve uygulamayı başlatmak için aşağıdaki komutları çalıştırın.

    dotnet tool install -g dotnet-ef
    dotnet ef database update
    dotnet run
    
  2. Bir tarayıcıda http://localhost:5000 sayfasına gidin. Yeni Oluştur bağlantısını seçin ve yapılacak birkaç iş oluşturun.

    SQL Veritabanı’na başarıyla bağlanır

  3. ASP.NET Core’u dilediğiniz zaman durdurmak için, terminalde Ctrl+C tuşlarına basın.

Üretim SQL Veritabanı oluşturma

Bu adımda, Azure’da bir SQL Veritabanı oluşturursunuz. Uygulamanız Azure’da dağıtıldığında bu bulut veritabanını kullanır.

SQL Veritabanı için bu öğreticide Azure SQL Veritabanı kullanılır.

Kaynak grubu oluşturma

Kaynak grubu , Web uygulamaları, veritabanları ve depolama hesapları gibi Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Örneğin, daha sonra tek bir basit adımda kaynak grubun tamamını silmeyi seçebilirsiniz.

Cloud Shell, komutuyla bir kaynak grubu oluşturun az group create . Aşağıdaki örnek Batı Avrupa konumunda myResourceGroup adlı bir kaynak grubu oluşturur. Ücretsiz katmanda App Service için desteklenen tüm konumları görüntülemek için az appservice list-locations --sku FREE komutunu çalıştırın.

az group create --name myResourceGroup --location "West Europe"

Genellikle kaynak grubunuzu ve kaynakları kendinize yakın bir bölgede oluşturursunuz.

Komut tamamlandığında, bir JSON çıkışı size kaynak grubu özelliklerini gösterir.

SQL Veritabanı mantıksal sunucusu oluşturma

Komut Cloud Shell komutuyla SQL Veritabanı bir mantıksal sunucu az sql server create oluşturun.

Yer <server-name> tutucusunu benzersiz bir SQL Veritabanı değiştirin. Bu ad, genel olarak benzersiz olan uç nokta olan SQL Veritabanı <server-name>.database.windows.net kullanılır. Geçerli karakterler a - z : 0 - 9 , , - . Ayrıca, ve <db-username> yerine tercih edin bir kullanıcı adı ve parola <db-password> yazın.

az sql server create --name <server-name> --resource-group myResourceGroup --location "West Europe" --admin-user <db-username> --admin-password <db-password>

SQL Veritabanı mantıksal sunucusu oluşturulduğunda Azure CLI, aşağıdaki örneğe benzer bilgiler gösterir:

{
  "administratorLogin": "<db-username>",
  "administratorLoginPassword": null,
  "fullyQualifiedDomainName": "<server-name>.database.windows.net",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Sql/servers/<server-name>",
  "identity": null,
  "kind": "v12.0",
  "location": "westeurope",
  "name": "<server-name>",
  "resourceGroup": "myResourceGroup",
  "state": "Ready",
  "tags": null,
  "type": "Microsoft.Sql/servers",
  "version": "12.0"
}

Sunucu güvenlik duvarı kurallarını yapılandırma

  1. az sql server firewall create komutunu kullanarak Azure SQL Veritabanı sunucusu düzeyinde güvenlik duvarı kuralı oluşturun. Hem başlangıç hem bitiş IP’si 0.0.0.0 olarak ayarlandığında, güvenlik duvarı yalnızca diğer Azure kaynakları için açılır.

    az sql server firewall-rule create --resource-group myResourceGroup --server <server-name> --name AllowAzureIps --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0
    

    İpucu

    Yalnızca uygulamanızın kullandığı giden IP adreslerini kullanarak güvenlik duvarı kurallarınızda daha da kısıtlayıcı olabilirsiniz.

  2. Komut Cloud Shell komutunu yeniden çalıştırarak yerel bilgisayarınızdan erişime izin vermek için yerine yerel <your-ip-address> IPv4 IP adresinizi yazın.

    az sql server firewall-rule create --name AllowLocalClient --server <server-name> --resource-group myResourceGroup --start-ip-address=<your-ip-address> --end-ip-address=<your-ip-address>
    

Veritabanı oluşturma

az sql db create komutunu kullanarak sunucuda S0 performans düzeyine sahip bir veritabanı oluşturun.

az sql db create --resource-group myResourceGroup --server <server-name> --name coreDB --service-objective S0

Bağlantı dizesini alma

komutunu kullanarak bağlantı dizesini az sql db show-connection-string alır.

az sql db show-connection-string --client ado.net --server <server-name> --name coreDB

Komut çıkışında, <username> ve yerine <password> daha önce kullanılan veritabanı yöneticisi kimlik bilgilerini yazın.

Bu, uygulamanıza ASP.NET Core dizesidir. Dizeyi daha sonra kullanmak üzere kopyalayın.

Uygulamayı üretim veritabanına bağlanarak yapılandırma

Yerel deponuzda, Startup.cs dosyasını açın ve aşağıdaki kodu bulun:

services.AddDbContext<MyDatabaseContext>(options =>
        options.UseSqlite("Data Source=localdatabase.db"));

Aşağıdaki kodla değiştirin.

services.AddDbContext<MyDatabaseContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("MyDbConnection")));

Önemli

Ölçeğin dışarı doğru ölçeklendirilen üretim uygulamaları için Üretimde geçişleri uygulama konusunda en iyi yöntemleri izleyin.

Veritabanı geçişlerini üretim veritabanına çalıştırma

Şu anda uygulamanız yerel bir Sqlite veritabanına bağlanır. Artık bir yapılandırma yapılandırdı Azure SQL Veritabanı hedefle için ilk geçişi yeniden oluşturun.

Depo kökünden aşağıdaki komutları çalıştırın. yerine <connection-string> daha önce oluşturduğunuz bağlantı dizesini kullanın.

# Delete old migrations
rm -r Migrations
# Recreate migrations with UseSqlServer (see previous snippet)
dotnet ef migrations add InitialCreate

# Set connection string to production database
# PowerShell
$env:ConnectionStrings:MyDbConnection="<connection-string>"
# CMD (no quotes)
set ConnectionStrings:MyDbConnection=<connection-string>
# Bash (no quotes)
export ConnectionStrings__MyDbConnection=<connection-string>

# Run migrations
dotnet ef database update

Uygulamayı yeni yapılandırmayla çalıştırma

  1. Veritabanı geçişleri üretim veritabanında çalıştır):

    dotnet run
    
  2. Bir tarayıcıda http://localhost:5000 sayfasına gidin. Yeni Oluştur bağlantısını seçin ve yapılacak birkaç iş oluşturun. Artık uygulamanız üretim veritabanına veri okuyor ve yazıyor.

  3. Yerel değişikliklerinizi işle ve ardından Git depona işle.

    git add .
    git commit -m "connect to SQLDB in Azure"
    

Artık kodunuzu dağıtmaya hazır oluruz.

Uygulamayı Azure’da dağıtma

Bu adımda, bağlı SQL Veritabanı uygulamanızı ASP.NET Core dağıtım App Service.

Yerel git dağıtımını yapılandırma

FTP ve yerel git, bir dağıtım kullanıcısı kullanarak bir Azure Web uygulamasına dağıtabilir. Dağıtım kullanıcısını yapılandırdıktan sonra tüm Azure dağıtımlarınız için kullanabilirsiniz. Hesap düzeyinde dağıtım Kullanıcı adınız ve parolanız, Azure aboneliği kimlik bilgilerinizden farklı.

Dağıtım kullanıcısını yapılandırmak için, Azure Cloud Shell bölümünde az WebApp Deployment User set komutunu çalıştırın. <username>Ve öğesini <password> bir dağıtım kullanıcısı Kullanıcı adı ve parolasıyla değiştirin.

  • Kullanıcı adı Azure içinde benzersiz olmalıdır ve yerel git gönderimleri için ' @ ' sembolünü içermemelidir.
  • Parola en az sekiz karakter uzunluğunda olmalıdır ve şu üç öğeden ikisi vardır: harfler, rakamlar ve semboller.
az webapp deployment user set --user-name <username> --password <password>

JSON çıktısı parolayı olarak gösterir null . 'Conflict'. Details: 409 hatası alırsanız kullanıcı adını değiştirin. 'Bad Request'. Details: 400 hatası alırsanız daha güçlü bir parola kullanın.

Web uygulamalarınızı dağıtmak için kullanmak üzere Kullanıcı adınızı ve parolanızı kaydedin.

App Service planı oluşturma

Cloud Shell, komutuyla bir App Service planı oluşturun az appservice plan create .

Aşağıdaki örnekte, Ücretsiz fiyatlandırma katmanı kullanılarak myAppServicePlan adlı bir App Service planı oluşturulmaktadır:

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE

App Service planı oluşturulduğunda Azure CLI, aşağıdaki örneğe benzer bilgiler gösterir:

{ 
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "app",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Komut Cloud Shell ile bir App Service planı az appservice plan create oluşturun.

Aşağıdaki örnekte, Ücretsiz fiyatlandırma katmanı kullanılarak myAppServicePlan adlı bir App Service planı oluşturulmaktadır:

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE --is-linux

App Service planı oluşturulduğunda Azure CLI, aşağıdaki örneğe benzer bilgiler gösterir:

{ 
  "freeOfferExpirationTime": null,
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "linux",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Web uygulaması oluşturma

App Service planında bir Web uygulaması oluşturun myAppServicePlan .

Cloud Shell az webapp create komutunu kullanabilirsiniz. Aşağıdaki örnekte <app-name> kısmını genel olarak benzersiz bir uygulama adıyla değiştirin (geçerli karakterler a-z, 0-9 ve - şeklindedir).

az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --deployment-local-git

Web uygulaması oluşturulduğunda Azure CLI aşağıda yer alan çıktıdaki gibi bilgiler gösterir:

Local git is configured with url of 'https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git'
{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "clientCertExclusionPaths": null,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app-name>.azurewebsites.net",
  "deploymentLocalGitUrl": "https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git",
  "enabled": true,
  < JSON data removed for brevity. >
}

Not

Git uzak URL’si deploymentLocalGitUrl özelliği içinde https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git biçiminde gösterilir. Bu URL’ye daha sonra ihtiyacınız olacağı için URL’yi kaydedin.

App Service planında bir web myAppServicePlan uygulaması oluşturun.

Komut Cloud Shell komutunu az webapp create kullanabilirsiniz. Aşağıdaki örnekte <app-name> kısmını genel olarak benzersiz bir uygulama adıyla değiştirin (geçerli karakterler a-z, 0-9 ve - şeklindedir). Çalışma zamanı DOTNET|5.0 olarak ayarlanmıştır. Desteklenen tüm çalışma zamanlarını görmek için az webapp list-runtimes --linux çalıştırın.

az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'DOTNET|5.0' --deployment-local-git

Web uygulaması oluşturulduğunda Azure CLI aşağıda yer alan çıktıdaki gibi bilgiler gösterir:

Local git is configured with url of 'https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git'
{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app-name>.azurewebsites.net",
  "deploymentLocalGitUrl": "https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git",
  "enabled": true,
  < JSON data removed for brevity. >
}

Linux kapsayıcısı içinde git dağıtımı etkinleştirilmiş boş bir web uygulaması oluşturdunız.

Not

Git uzak URL’si deploymentLocalGitUrl özelliği içinde https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git biçiminde gösterilir. Bu URL’ye daha sonra ihtiyacınız olacağı için URL’yi kaydedin.

Bağlantı dizesini yapılandırma

Azure uygulamanıza bağlantı dizeleri ayarlamak için aşağıdaki az webapp config appsettings set komutta Cloud Shell. Aşağıdaki komutta parametresini <app-name> ve parametresini <connection-string> daha önce oluşturduğunuz bağlantı dizesiyle değiştirin.

az webapp config connection-string set --resource-group myResourceGroup --name <app-name> --settings MyDbConnection='<connection-string>' --connection-string-type SQLAzure

Bu ASP.NET Core, MyDbConnection appsettings.json içinde belirtilen herhangi bir bağlantı dizesi gibi standart deseni kullanarak bu adlandırılmış bağlantı dizesini ( ) kullanabilirsiniz. Bu durumda, MyDbConnection appsettings.json dosyanız içinde de tanımlanır. uygulama içinde App Service, App Service appsettings.json içinde tanımlanan bağlantı dizesine göre önceliklidir. Kod, yerel geliştirme sırasında appsettings.json değerini, aynı kod ise dağıtıldığında App Service değerini kullanır.

Kodda bağlantı dizesine nasıl başvurul olduğunu görmek için bkz. Üretim veritabanına bağlanmak için uygulamayı yapılandırma.

Git üzerinden Azure'a gönderme

  1. Dalı dağıtıyorsanız, App Service uygulamanızın varsayılan dağıtım dalını olarak main main ayarlamalısınız (bkz. Dağıtım dalını değiştirme). Komut Cloud Shell uygulama DEPLOYMENT_BRANCH ayarını komutuyla az webapp config appsettings set ayarlayın.

    az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
    
  2. Yerel terminal penceresine dönüp yerel Git deponuza bir Azure uzak deposu ekleyin. yerine <deploymentLocalGitUrl-from-create-step> Web uygulaması oluşturma sayfasından kaydedilen Git uzak url'sini yazın.

    git remote add azure <deploymentLocalGitUrl-from-create-step>
    
  3. Aşağıdaki komutla uygulamanızı dağıtmak için Azure uzak deposuna gönderin. Git Kimlik Bilgileri Yöneticisi sizden kimlik bilgileri istendiğinde, dağıtım kullanıcısını yapılandırma'da oluşturduğunuz kimlik bilgilerini, kullanıcı arabiriminde oturum a açma için değil , kimlik bilgilerini Azure portal.

    git push azure main
    

    Bu komutun çalıştırılması birkaç dakika sürebilir. Çalıştırıldığında, aşağıdaki örneğe benzer bilgiler görüntüler:

   Enumerating objects: 268, done.
   Counting objects: 100% (268/268), done.
   Compressing objects: 100% (171/171), done.
   Writing objects: 100% (268/268), 1.18 MiB | 1.55 MiB/s, done.
   Total 268 (delta 95), reused 251 (delta 87), pack-reused 0
   remote: Resolving deltas: 100% (95/95), done.
   remote: Updating branch 'main'.
   remote: Updating submodules.
   remote: Preparing deployment for commit id '64821c3558'.
   remote: Generating deployment script.
   remote: Project file path: .\DotNetCoreSqlDb.csproj
   remote: Generating deployment script for ASP.NET MSBuild16 App
   remote: Generated deployment script files
   remote: Running deployment command...
   remote: Handling ASP.NET Core Web Application deployment with MSBuild16.
   remote: .
   remote: .
   remote: .
   remote: Finished successfully.
   remote: Running post deployment command(s)...
   remote: Triggering recycle (preview mode disabled).
   remote: App container will begin restart within 10 seconds.
   To https://<app-name>.scm.azurewebsites.net/<app-name>.git
    * [new branch]      main -> main
   
   Enumerating objects: 273, done.
   Counting objects: 100% (273/273), done.
   Delta compression using up to 4 threads
   Compressing objects: 100% (175/175), done.
   Writing objects: 100% (273/273), 1.19 MiB | 1.85 MiB/s, done.
   Total 273 (delta 96), reused 259 (delta 88)
   remote: Resolving deltas: 100% (96/96), done.
   remote: Deploy Async
   remote: Updating branch 'main'.
   remote: Updating submodules.
   remote: Preparing deployment for commit id 'cccecf86c5'.
   remote: Repository path is /home/site/repository
   remote: Running oryx build...
   remote: Build orchestrated by Microsoft Oryx, https://github.com/Microsoft/Oryx
   remote: You can report issues at https://github.com/Microsoft/Oryx/issues
   remote: .
   remote: .
   remote: .
   remote: Done.
   remote: Running post deployment command(s)...
   remote: Triggering recycle (preview mode disabled).
   remote: Deployment successful.
   remote: Deployment Logs : 'https://<app-name>.scm.azurewebsites.net/newui/jsonviewer?view_url=/api/deployments/cccecf86c56493ffa594e76ea1deb3abb3702d89/log'
   To https://<app-name>.scm.azurewebsites.net/<app-name>.git
    * [new branch]      main -> main
   

Azure uygulamasına göz atma

  1. Web tarayıcınızı kullanarak dağıtılan uygulamaya göz atma.

    http://<app-name>.azurewebsites.net
    
  2. Yapılacak birkaç iş ekleyin.

    App Service’te çalışan uygulama

Tebrikler! Veri odaklı bir ASP.NET Core App Service.

Yerel olarak güncelleştirme ve yeniden dağıtma

Bu adımda, veritabanı şemanızda bir değişiklik yapacak ve bunu Azure’da yayımlayacaksınız.

Veri modelinizi güncelleştirme

Kod düzenleyicisinde Models/Todo.cs'yi açın. ToDo sınıfına aşağıdaki özelliği ekleyin:

public bool Done { get; set; }

Veritabanı geçişlerini yeniden çalıştır

Üretim veritabanında güncelleştirme yapmak için birkaç komut çalıştırın.

dotnet ef migrations add AddProperty
dotnet ef database update

Not

Yeni bir Terminal penceresi açarsanız, üretim veritabanına veritabanı geçişlerini Çalıştır' da yaptığınız gibi, bağlantı dizesini terminaldeki üretim veritabanına ayarlamanız gerekir.

Yeni özelliği kullanma

Done özelliğini kullanarak kodunuzda birkaç değişiklik yapın. Bu öğreticide, daha kolay uygulama için, işlemin nasıl çalıştığını görmek üzere yalnızca Index ve Create görünümlerini değiştireceksiniz.

  1. Denetleyicileri/TodosController. cs dosyasını açın.

  2. Create([Bind("ID,Description,CreatedDate")] Todo todo) metodunu bulun ve Done değerini Bind özniteliğindeki özellik listesine ekleyin. Hazır olduğunuzda, Create() metot imzanız aşağıdaki koda benzer şekilde görünür:

    public async Task<IActionResult> Create([Bind("ID,Description,CreatedDate,Done")] Todo todo)
    
  3. Görünümleri/Todos/Create. cshtml dosyasını açın.

  4. Razor kodunda, Description için <div class="form-group"> öğesi ve CreatedDate için başka bir <div class="form-group"> öğesi görürsünüz. Aşağıdaki iki öğeyi takip eden Done için başka bir <div class="form-group"> öğesi ekleyin:

    <div class="form-group">
        <label asp-for="Done" class="col-md-2 control-label"></label>
        <div class="col-md-10">
            <input asp-for="Done" class="form-control" />
            <span asp-validation-for="Done" class="text-danger"></span>
        </div>
    </div>
    
  5. Görünümleri/Todos/Index. cshtml dosyasını açın.

  6. Boş <th></th> öğesini arayın. Bu öğenin hemen üstüne aşağıdaki Razor kodunu ekleyin:

    <th>
        @Html.DisplayNameFor(model => model.Done)
    </th>
    
  7. <td> etiket yardımcısını içeren asp-action öğesini bulun. Bu öğenin hemen üstüne aşağıdaki Razor kodunu ekleyin:

    <td>
        @Html.DisplayFor(modelItem => item.Done)
    </td>
    

Index ve Create görünümlerindeki değişiklikleri görmek için yapmanız gerekenler bu kadardır.

Değişikliklerinizi yerel olarak test etme

  1. Uygulamayı yerel olarak çalıştırın.

    dotnet run
    

    Not

    Yeni bir Terminal penceresi açarsanız, üretim veritabanına veritabanı geçişlerini Çalıştır' da yaptığınız gibi, bağlantı dizesini terminaldeki üretim veritabanına ayarlamanız gerekir.

  2. Tarayıcınızda http://localhost:5000/ adresine gidin. Artık yapılacak bir öğe ekleyip öğeyi Bitti olarak işaretleyebilirsiniz. Daha sonra öğe, ana sayfanızda tamamlanmış bir öğe olarak görünmelidir. Edit görünümünü değiştirmediğinizden, Edit görünümünün Done alanında görünmediğini göz önünde bulundurun.

Değişiklikleri Azure’da yayımlama

  1. Değişikliklerinizi git 'e işleyin ve App Service uygulamanıza gönderin.

    git add .
    git commit -m "added done field"
    git push azure main
    
  2. Tamamlandıktan sonra git push App Service uygulamanıza gidin ve Yapılacaklar öğesi eklemeyi deneyin ve Tamam' ı işaretleyin.

    Code First geçişten sonra Azure uygulaması

Mevcut yapılacak öğeleriniz görüntülenmeye devam eder. ASP.NET Core uygulamanızı yeniden yayımladığınızda, SQL Veritabanı mevcut veriler kaybolmaz. Ayrıca, Entity Framework Code Migrations yalnızca veri şemasını değiştirir ve mevcut verilerinizde herhangi bir değişiklik yapmaz.

Tanılama günlüklerini akışla aktarma

ASP.NET Core uygulama Azure App Service çalışırken konsol günlüklerini Cloud Shell üzerinden alabilirsiniz. Böylece, uygulama hatalarını ayıklamanıza yardımcı olan tanılama iletilerinin aynısını alabilirsiniz.

Örnek proje, Azure App Service günlük sağlayıcısına yönelik kılavuzdan iki yapılandırma değişikliğine zaten uyar:

  • Microsoft.Extensions.Logging.AzureAppServices Dotnetcoressqldb. csproj içinde öğesine bir başvuru içerir.
  • loggerFactory.AddAzureWebAppDiagnostics() Program. cs içindeki çağrılar.
  1. App Service ASP.NET Core günlük düzeyini varsayılan düzeyden olarak ayarlamak için Information Error , az webapp log config Cloud Shell komutunu kullanın.

    az webapp log config --name <app-name> --resource-group myResourceGroup --application-logging filesystem --level information
    

    Not

    Projenin günlük düzeyi zaten Information appSettings. JSON içinde olarak ayarlanmıştır.

  2. Günlük akışını başlatmak için az webapp log tail Cloud Shell komutunu kullanın.

    az webapp log tail --name <app-name> --resource-group myResourceGroup
    
  3. Günlük akışı başladıktan sonra bazı web trafiği almak için tarayıcıda Azure uygulamasını yenileyin. Artık konsol günlüklerinin terminale yöneltildiğini görebilirsiniz. Konsol günlüklerini hemen görmüyorsanız, 30 saniye içinde yeniden kontrol edin.

  4. Günlük akışını dilediğiniz zaman durdurmak için Ctrl+C yazın.

ASP.NET Core günlüklerini özelleştirme hakkında daha fazla bilgi için bkz. .net 'te günlüğe kaydetme.

Kaynakları temizleme

Önceki adımlarda, bir kaynak grubunda Azure kaynakları oluşturdunuz. Bu kaynakların gelecekte gerekli olacağını düşünmüyorsanız, Cloud Shell’de aşağıdaki komutu çalıştırarak kaynak grubunu silin:

az group delete --name myResourceGroup

Bu komutun çalıştırılması bir dakika sürebilir.

Sonraki adımlar

Öğrendikleriniz:

  • Azure’da SQL Veritabanı oluşturma
  • SQL Veritabanı için bir ASP.NET Core uygulaması Bağlan
  • Uygulamayı Azure’da dağıtma
  • Veri modelini güncelleştirme ve uygulamayı yeniden dağıtma
  • Azure’daki günlüklerin terminalinize akışını sağlama
  • Uygulamayı Azure portalında yönetme

Özel bir DNS adını uygulamanıza nasıl eşleyeceğinizi öğrenmek için bir sonraki öğreticiye ilerleyin.

Ya da diğer kaynaklara göz atın: