IIS etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
IIS etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

2 Ekim 2020 Cuma

IIS Site Yedek Alma - Siteyi Güncelleme PowerShell Script

Yedek alıyor, uygulamayı durduruyor, dosyaları güncelliyor, uygulamayı açıyor.

WebApi

if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")){
    Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit
}

Write-Host "Yedekleniyor...";
$from = "C:\WebSites\akifsite.com\_Current\*"
$to = "C:\WebSites\akifsite.com\_Old\"+(get-date).ToString('yyyy_MM_dd-hh_mm_ss')+"\"  
New-Item -ItemType Directory -Force -Path $to
Copy-Item $from $to -recurse
Write-Host $to  " klasorune yedeklendi";

$FileName = "C:\WebSites\akifsite.com\_New\Api\web.config"
if (Test-Path $FileName) {
  Remove-Item $FileName
}

$FileName = "C:\WebSites\akifsite.com\_New\Api\appsettings.json"
if (Test-Path $FileName) {
  Remove-Item $FileName
}

$siteName = "akifsite.com"; #poolState name aynı diye bunu kullanıyorum, farklı olsa poolName eklemek lazım - akif 30.09.2020
$poolState="";
$siteState ="";
$currentRetry = 0;
Write-Host  $siteName " durduruluyor...";
do{
    $siteState = (Get-WebsiteState $siteName).Value;
    $poolState = (Get-WebAppPoolState $siteName).Value
    if($siteState -eq "Started"){
        STOP-Website $siteName;
    }
    if($poolState -eq "Started"){
        Stop-WebAppPool -Name $siteName;
    }
    if($siteState -eq "Started" -or $poolState -eq "Started"){
        Start-Sleep -s 5;
    }

    $currentRetry = $currentRetry + 1;
}while ($siteState -eq "Started" -and $currentRetry -le 20)

Write-Host $siteName " Durdu (" $currentRetry "sn)";

Write-Host "Uygulama guncelleniyor...";
$from = "C:\WebSites\akifsite.com\_New\Api\*"
$to = "C:\WebSites\akifsite.com\_Current\Api\"  
New-Item -ItemType Directory -Force -Path $to
Copy-Item $from $to -recurse
Write-Host "Uygulama guncellendi";

Write-Host $siteName " calistiriliyor.."
if($siteState -eq "Stopped"){
    Start-Website $siteName;
}
if($poolState -eq "Stopped"){
    Start-WebAppPool -Name $siteName;
}
Write-Host $siteName " calisiyor"

Write-Host "Bitti"
Read-Host

 

 UiUpdate

if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")){
    Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit
}

Write-Host "Yedekleniyor...";
$from = "C:\WebSites\akifsite.com\_Current\*"
$to = "C:\WebSites\akifsite.com\_Old\"+(get-date).ToString('yyyy_MM_dd-hh_mm_ss')+"\"  
New-Item -ItemType Directory -Force -Path $to
Copy-Item $from $to -recurse
Write-Host $to  " klasorune yedeklendi";

$siteName = "akifsite.com"; #poolState name aynı diye bunu kullanıyorum, farklı olsa poolName eklemek lazım - akif 30.09.2020
$poolState="";
$siteState ="";
$currentRetry = 0;
Write-Host  $siteName " durduruluyor...";
do{
    $siteState = (Get-WebsiteState $siteName).Value;
    $poolState = (Get-WebAppPoolState $siteName).Value
    if($siteState -eq "Started"){
        STOP-Website $siteName;
    }
    if($poolState -eq "Started"){
        Stop-WebAppPool -Name $siteName;
    }
    if($siteState -eq "Started" -or $poolState -eq "Started"){
        Start-Sleep -s 5;
    }

    $currentRetry = $currentRetry + 1;
}while ($siteState -eq "Started" -and $currentRetry -le 20)

Write-Host $siteName " Durdu (" $currentRetry "sn)";

Get-ChildItem "C:\WebSites\akifsite.com\_Current" -Exclude api,web.config | Remove-Item -Recurse; #api uygulamsı ve config ayarları olduğu için onları silmiyoruz

Write-Host "Uygulama guncelleniyor...";
$from = "C:\WebSites\akifsite.com\_New\ui\*"
$to = "C:\WebSites\akifsite.com\_Current\"  
New-Item -ItemType Directory -Force -Path $to
Copy-Item $from $to -recurse
Write-Host "Uygulama guncellendi";

Write-Host $siteName " calistiriliyor.."
if($siteState -eq "Stopped"){
    Start-Website $siteName;
}
if($poolState -eq "Stopped"){
    Start-WebAppPool -Name $siteName;
}
Write-Host $siteName " calisiyor"

Write-Host "Bitti"
Read-Host

 

24 Eylül 2020 Perşembe

IIS HTTPS Yönlendirme - ReWrite

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="HTTPS force" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

17 Eylül 2020 Perşembe

IIS Üzerinde Ücretsiz SSL alma (90 günlük) sslforfree

https://manage.sslforfree.com/certificate/new sayfasından sihirbazı izleyip domain onayını aldıktan sonra indirme yapıyoruz.Domain onayı almak için "/.well-known/pki-validation/{key}" altında bir doğrulama dosyası isteyecek. Bunun için uygulama altına Virtual Directory açmamız gerekiyor ".well-known" sanal yolunu "C:\VirtualDirectory\well-known" yapabilirsin kafana göre. Sonra onay çin gerekli dosyayı istediği yola atıp onaylaman gerekiyor.

https://decoder.link/converter adresinden tamamlanacak olan sertifikayı convert ediyoruz

 ca_bundle.crt

Certificate File to Convert = certificate.crt 

Chain Certificate File (optional) Private Key File= private.key

Type To Convert To = PFX/PKCS#12

PFX Password = (Boş bırakılabilir)

seçiyoruz, convert dediğimizde "certificate.pfx" adında bir dosya oluşturacak. Bunu IIS üzerinde SSL Sertifikaları bölümünden "Complete Certificate Request" veya "Sertifika İsteğini Tamamla" diyip, sertifikaya akılda kalıcı bir isim verdikten sonra işlemi tamamlıyorsunuz. Artık uygulamanızın bindings kısmında 443 olan https domainin SSL certificate'ini yüklediğiniz sertifikayı atayabilirsiniz.

 



10 Temmuz 2017 Pazartesi

http adresi https'e yönlendirme

Bindings'e https adresimizi girdik Sitenin SSL Settings'ten required ssl'i tikliyoruz Sitenin error pages ekranından 403.4 (ssl yok) hatasını https://site.com a yönlendiriyoruz

13 Eylül 2016 Salı

IIS 7 Yedek Alma ve Geri Yükleme (Backup & Restore)

Başka bir servera taşındığınızda, eski serverınızdaki IIS’de kurulu olan sitelerinizi, web servislerinizi, aplication pool’larınızı teker teker eklemek doğal olarak zor olacaktır. IIS ayarlarınızın yedeğini alıp yenisine yüklemek işinizi kolaylaştırır. Bunun için yapmanız gerekenler, çok kolay ve sorunsuz çalışan iki komuttan oluşuyor.
1- Komut penceresini açın.
– Windows Server 2008 için: Başlat -> Arama kutusu + Cmd +  Enter
– XP ve Windows Server 2003  için :  Başlat ->Çalıştır
2- Backup komutu: > %windir%\system32\inetsrv\appcmd.exe add backup “IISBackup”
IIS7 Yedek Alma (IIS Backup)
Yukarıda “IISBackup” isimli yedek klasörümüzü oluşturduk. Bu klasöre Windows Server 2008’de  “C:\Windows\System32\inetsrv\backup” içinde ulaşabilirsiniz.
3 –  Restore komutu (Geri Yükleme) : >%windir%\system32\inetsrv\appcmd.exe restore backup “IISBackup”
IISBackup klasörünü yeni serverda “C:\Windows\System32\inetsrv\backup” dizinine atın. Ardından yukarıdaki kodu komut satırında çalıştırın.
IIS7 Geri Yükleme (Restore)
Bu işlemden sonra IIS’i açın. Tüm domain – sub domainleri, web servisleri, application pool’ları ile IIS yedeğinin yeni serverınıza yüklendiğini göreceksiniz.

.net 6 mapget kullanımı

 app.UseEndpoints(endpoints => {     endpoints.MapGet("/", async context =>     {         var response = JsonConvert.Seriali...