Azure App Service Görevi Dağıtma

ParametrelerAçıklama
ConnectionType
(Bağlantı türü)
(Gerekli) Web Uygulamasını dağıtmak için kullanmak üzere hizmet bağlantı türünü seçin.
Varsayılan değer: AzureRM
Bağlı
ServiceName

(Azure aboneliği)
(ConnectionType = AzureRM ise gereklidir) Dağıtım Azure Resource Manager aboneliğini seçin.
Bağımsız değişken diğer adları: azureSubscription
PublishProfilePath
(Profil yolunu yayımla)
(ConnectionType = PublishProfile ise gereklidir) Yayımlama bilgilerini içeren dosyanın yolu.
Varsayılan değer:$(System.DefaultWorkingDirectory)/**/*.pubxml
PublishProfilePassword
(Profil parolasını yayımla)
(ConnectionType = PublishProfile ise gereklidir) Profil dosyasının parolası. Parolayı bir gizli değişkende depolamayı ve bu değişkeni burada kullanmayı göz önünde bulundurabilirsiniz. Örnek: $(Parola)
WebAppKind
(App Service türü)
(ConnectionType = AzureRM ise gereklidir) Windows'da Web Uygulaması, Linux'ta Web Uygulaması, Kapsayıcılar için Web App, İşlev Uygulaması, Linux'ta İşlev Uygulaması, Kapsayıcılar için İşlev Uygulaması ve Mobil Uygulama'dan seçim
Varsayılan değer: webApp
Bağımsız değişken diğer adları: appType
WebAppName
(App Service adı)
(ConnectionType = AzureRM ise gereklidir) Mevcut bir uygulamanın adını girin veya Azure App Service. Yalnızca seçilen uygulama türünü temel alan Uygulama Hizmetleri listelenir.
DeployTo
SlotOrASEFlag

(Yuvaya veya App Service Ortamı)
(İsteğe bağlı) Mevcut bir dağıtım yuvasına veya ortam ortamına dağıtma Azure App Service seçin. Her iki hedef için de görev bir Kaynak Grubu adı gerektirir.
Dağıtım hedefi bir yuva ise, dağıtım varsayılan olarak üretim yuvasına yöneliktir. Başka bir mevcut yuva adı sağlanmalıdır.
Dağıtım hedefi bir Azure App Service alanı ise yuva adını üretim olarak bırakın ve yalnızca Kaynak Grubu adını belirtin.
Varsayılan değer: false
Bağımsız değişken diğer adları: deployToSlotOrASE
ResourceGroupName
(Kaynak grubu)
(DeployToSlotOrASEFlag = true ise gereklidir) Dağıtım hedefi bir dağıtım yuvası veya bir dağıtım yuvası olduğunda Kaynak Grubu adı App Service gerekir. Yukarıda belirtilen kaynak grubunu içeren Azure Kaynak Grubunu Azure App Service seçin.
SlotName
(Yuva)
(DeployToSlotOrASEFlag = true ise gereklidir) Üretim yuvası dışında bir yuva girin veya mevcut yuvayı seçin.
Varsayılan değer: üretim
DockerNamespace
(Kayıt Defteri veya Ad Alanı)
(WebAppKind = webAppContainer ise gereklidir
veya WebAppkind = functionAppContainer) Özel kayıt defteriniz veya ad alanınız için genel olarak benzersiz bir üst düzey etki alanı adı. Not:Tam görüntü adı şu biçimde olacaktır: {kayıt defteri veya ad alanı}/{depo}:{etiket}. Örneğin, myregistry.azurecr.io/nginx:latest
DockerRepository
(Görüntü)
(WebAppKind = webAppContainer ise gereklidir
veya WebAppkind = functionAppContainer) Kapsayıcı görüntülerinin depolandığı deponun adı. Not: Tam görüntü adı şu biçimde olacaktır: {kayıt defteri veya ad alanı}/{depo}:{etiket}. Örneğin, myregistry.azurecr.io/nginx:latest
DockerImageTag
(Etiket)
(İsteğe bağlı) Etiketler isteğe bağlıdır, ancak kayıt defterleri Docker görüntülerine sürüm bilgilerini uygulamak için kullanır. Not: Tam görüntü adı şu biçimde olacaktır: {kayıt defteri veya ad alanı}/{depo}:{etiket}. Örneğin, myregistry.azurecr.io/nginx:latest
VirtualApplication
(Sanal uygulama)
(İsteğe bağlı) Sanal Uygulamada yapılandırılan Sanal Uygulamanın adını Azure portal. Bu seçenek, web sitesi köküne yapılan dağıtımlar için gerekli değildir. Sanal Uygulama, web projesinin dağıtımı öncesinde yapılandırılmış olması gerekir.
Package
(Paket veya klasör)
(ConnectionType = PublishProfile veya WebAppKind = webApp, apiApp, functionApp, mobileApp, webAppLinux veya functionAppLinux ise gereklidir) Paketin veya dosyanın dosya yolu, App Service tarafından oluşturulan MSBuild sıkıştırılmış zip ya da war dosyası içeren bir klasör.
Derleme değişkenleriveya yayın değişkenleri) ve joker karakterler de kullanılabilir. Örneğin $(System.DefaultWorkingDirectory)/**/*.zip veya $(System.DefaultWorkingDirectory)/**/*.war olabilir.
Varsayılan değer: $(System.DefaultWorkingDirectory)/**/*.zip
Bağımsız değişken diğer adları: packageForLinux
RuntimeStack
(Çalışma Zamanı Yığını)
(İsteğe bağlı) Çerçeveyi ve sürümü seçin. Bu, Linux için WebApp'e özeldir.
RuntimeStackFunction
(Çalışma Zamanı Yığını)
(İsteğe bağlı) Çerçeveyi ve sürümü seçin. Bu, Linux'ta İşlev Uygulaması için.
StartupCommand
(Başlangıç komutu)
(İsteğe bağlı) start up komutunu girin.
ScriptType
(Dağıtım betiği türü)
(İsteğe bağlı) Başarılı bir dağıtımdan sonra dağıtımda çalışan bir betik sağlayarak Azure App Service özelleştirin. Satır içi dağıtım betiği veya bir betik dosyasının yolunu ve adını seçin. Daha fazla bilgi edinin.
InlineScript
(Satır Içi Betik)
(ScriptType == Satır Içi Betik ise gereklidir) Yürütülecek betik. Dağıtım komutlarınızı burada, her satırda bir komut olacak şekilde sebilirsiniz. Bu örneğe bakın.
ScriptPath
(Dağıtım betiği yolu)
(ScriptType == Dosya Yolu ise gereklidir) Yürütülecek betiğin yolu ve adı.
Web
ConfigParameters

(Python, web.config, Go ve Java Node.js için farklı parametreler oluşturun)
(İsteğe bağlı) Uygulamanın web.config standart bir Azure App Service oluşturulacak ve dağıtılacaktır. Uygulama web.config düzenlenemez ve uygulama çerçevesine göre değişiklik gösterir. Örneğin, Node.js için, web.config başlangıç dosyası ve modül iis_node değerlerine sahip olur. Bu düzenleme özelliği yalnızca oluşturulan web.config için. Daha fazla bilgi edinin.
AppSettings
(Uygulama ayarları)
(İsteğe bağlı) söz dizimi -key değerini kullanarak web uygulaması Uygulama ayarlarını düzenleyin. Boşluk içeren değerlerin çift tırnak içine alınmış olması gerekir. Örnekler: -Port 5000 -RequestTimeout 5000ve -WEBSITE_TIME_ZONE "Doğu Standart Saati".
ConfigurationSettings
(Yapılandırma ayarları)
(İsteğe bağlı) söz dizimi -key değerini kullanarak web uygulaması yapılandırma ayarlarını düzenleyin. Boşluk içeren değerlerin çift tırnak içine alınmış olması gerekir. Örnek: -phpversion 5,6-linuxFxVersion: node | 6.11
UseWebDeploy
(Dağıtım yöntemini seçin)
Seçim İşaretlenmezse, görev uygulama türü, paket biçimi ve diğer parametrelere göre en iyi dağıtım yöntemini otomatik olarak algılar. Desteklenen dağıtım yöntemlerini görüntüleme seçeneğini belirleyin ve uygulamanızı dağıtmak için bir tane seçin.
Bağımsız değişken diğer adları: enableCustomDeployment
DeploymentType
(Dağıtım yöntemi)
(UseWebDeploy = = true ise gereklidir) Uygulama için dağıtım yöntemini seçin.
Varsayılan değer: webDeploy
TakeAppOfflineFlag
(Uygulamayı çevrimdışına al)
Seçim Eşitleme işlemi başlamadan önce kök dizinine bir app_offline.htm dosyası yerleştirerek Azure App Service çevrimdışına almak için bu seçeneği belirleyin. Eşitleme başarıyla tamamlandıktan sonra dosya kaldırılacak.
Varsayılan değer: true
SetParametersFile
(SetParameters dosyası)
(İsteğe bağlı) kullanılacak SetParameters.xml dosyasının konumu.
Removeek
Filesbayrağı

(Hedefteki ek dosyaları Kaldır)
Seçim App Service pakette veya klasöründe eşleşen dosya olmayan Azure App Service dosyaları silme seçeneğini belirleyin.
Note: Bu, Ayrıca bu Azure App Service yüklü olan uzantılara ilişkin tüm dosyaları da kaldırır. Bu ayarı engellemek için dosyaları App_Data klasörden hariç tut onay kutusunu işaretleyin.
Varsayılan değer: false
ExcludeFiles
FromAppDataFlag

(Dosyaları App_Data klasörden hariç tut)
Seçim App_Data klasördeki dosyaların Azure App Service dağıtılmasını veya silinmesini önleme seçeneğini belirleyin.
Varsayılan değer: true
AdditionalArguments
(Ek bağımsız değişkenler)
Seçim Sözdizimi anahtarı: değer' i izleyen ek Web dağıtımı bağımsız değişkenleri. Bunlar, Azure App Service dağıtıldığında uygulanır. Örnek: -disablelink: Apppoolexger-disablelink: ContentExtension.Daha fazla örnek.
Varsayılan değer: -retryAttempts: 6-RetryInterval: 10000
RenameFilesFlag
(Kilitli dosyaları yeniden adlandır)
Seçim Azure App Service uygulama ayarlarında MSDeploy bayrağını MSDEPLOY_RENAME_LOCKED_FILES = 1 ' i etkinleştirmek için bu seçeneği belirleyin. Ayarlandığında, MSDeploy 'ın uygulama dağıtımı sırasında kilitlenen dosyaları yeniden adlandırmasına olanak sağlar.
Varsayılan değer: true
XmlTransformation
(XML dönüşümü)
Seçim Yapılandırma dönüştürmeleri . Release.config ve için çalıştırılacak . { EnvironmentName} , * .config dosyalarında .config. Yapılandırma dönüştürmeleri, değişken değiştirme işleminden önce çalışır. XML dönüştürmeleri yalnızca Windows platformu için desteklenir. Daha fazla bilgi edinin.
Varsayılan değer: false
Bağımsız değişken diğer adları: enableXmlTransform
XmlVariable
Değiştirme

(XML değişkeni değiştirme)
Seçim Derleme veya sürüm ardışık düzeninde tanımlanan değişkenler, herhangi bir yapılandırma dosyasının ve parameters.xml dosyasının appSettings, ApplicationSettingsve connectionStrings bölümlerinde yer alacak anahtar veya ad girişleriyle eşleştirilir. Değişken değiştirme, yapılandırma dönüşümlerinden sonra çalışır.
Note: yayın ardışık düzeninde ve aşamada aynı değişkenler tanımlanırsa, aşama değişkenleri yayın ardışık düzen değişkenlerinin yerini alır. Daha fazla bilgi edinin
Varsayılan değer: false
Bağımsız değişken diğer adları: enableXmlVariableSubstitution
JSONFiles
(JSON değişken değiştirme)
Seçim Değişken değerlerini değiştirmek için, yeni bir JSON dosyaları listesi sağlayın. Dosya adları kök klasöre göreli olmalıdır. İç içe geçmiş veya hiyerarşik olan JSON değişkenlerini değiştirmek için, JSONPath ifadelerini kullanarak bunları belirtin. Örneğin, aşağıdaki örnekteki ConnectionString öğesinin değerini değiştirmek için, derleme veya sürüm ardışık düzeninde (veya sürüm ardışık düzen aşamasında) Data. DefaultConnection. ConnectionString adlı bir değişken tanımlayın.

{
  "Veri": {
    "DefaultConnection": {
      "ConnectionString": "Server = (LocalDB) \SQLEXPRESS; Database = MyDB; Trusted_Connection = true "
    }
  }
}

Değişken değiştirme, yapılandırma dönüşümlerinden sonra çalışır. Note: derleme ve serbest bırakma işlem hattı değişkenleri değiştirme dışında tutulur. Daha fazla bilgi edinin.

Bu YAML örneği bir Azure Web uygulaması kapsayıcısına (Linux) dağıtılır.

pool:
  vmImage: ubuntu-latest

variables:
  azureSubscriptionEndpoint: Contoso
  DockerNamespace: contoso.azurecr.io
  DockerRepository: aspnetcore
  WebAppName: containersdemoapp

steps:

- task: AzureRMWebAppDeployment@4
  displayName: Azure App Service Deploy
  inputs:
    appType: webAppContainer
    ConnectedServiceName: $(azureSubscriptionEndpoint)
    WebAppName: $(WebAppName)
    DockerNamespace: $(DockerNamespace)
    DockerRepository: $(DockerRepository)
    DockerImageTag: $(Build.BuildId)

bir web uygulamasını dağıtım yuvaları genelinde Windows App Service dağıtan başka bir örnek aşağıda verilmiştir.

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
 - stage: DeployDevStage
    displayName: 'Deploy App to Dev Slot'
    jobs:
      - job:  DeployApp
        displayName: 'Deploy App'
        steps:
        - task: DownloadPipelineArtifact@2
          inputs:
            buildType: 'current'
            artifactName: 'drop'
            targetPath: '$(System.DefaultWorkingDirectory)'
        - task: AzureRmWebAppDeployment@4
          inputs:
            ConnectionType: 'AzureRM'
            azureSubscription: 'Fabrikam Azure Subscription - PartsUnlimited'
            appType: 'webApp'
            WebAppName: 'partsunlimited'
            deployToSlotOrASE: true
            ResourceGroupName: 'rgPartsUnlimited'
            SlotName: 'Dev'
            packageForLinux: '$(System.DefaultWorkingDirectory)/**/*.zip'

  - stage: DeployStagingStage
    displayName: 'Deploy App to Staging Slot'
    dependsOn: DeployDevStage
    jobs:
      - job:  DeployApp
        displayName: 'Deploy App'
        steps:
        - task: DownloadPipelineArtifact@2
          inputs:
            buildType: 'current'
            artifactName: 'drop'
            targetPath: '$(System.DefaultWorkingDirectory)'
        - task: AzureRmWebAppDeployment@4
          inputs:
            appType: webApp
            ConnectionType: AzureRM            
            ConnectedServiceName: 'Fabrikam Azure Subscription - PartsUnlimited'
            ResourceGroupName: 'rgPartsUnlimited'
            WebAppName: 'partsunlimited'
            Package: '$(System.DefaultWorkingDirectory)/**/*.zip'
            deployToSlotOrASE: true
            SlotName: 'staging'

  • belirli bir uygulama türüne dağıtmak için, appType aşağıdaki kabul edilen değerlerden herhangi birine ayarlayın: webApp (Windows web uygulaması), (linux üzerinde web uygulaması), ( webAppLinuxwebAppContainer Kapsayıcılar için Web App-linux), functionApp (Windows üzerinde İşlev Uygulaması), ( functionAppLinux linux üzerinde İşlev Uygulaması), ( functionAppContainerapiApp apı uygulaması), ( mobileApp mobil uygulama). Belirtilmemişse, webApp varsayılan değer olarak alınır.

  • Herhangi bir gelişmiş dağıtım seçeneğini etkinleştirmek için parametresini ekleyin enableCustomDeployment: true ve gerektiğinde aşağıdaki parametreleri ekleyin.

        # deploymentMethod: 'runFromPackage' # supports zipDeploy as well
        # appOffline: boolean    # Not applicable for 'runFromPackage'
        # setParametersFile: string
        # removeAdditionalFilesFlag: boolean
        # additionalArguments: string
    

Çıkış değişkenleri

  • Web uygulaması BARıNDıRıLAN URL:Azure App Service BARıNDıRıLAN URL ile doldurulmuş değişken için gibi bir ad girin. Değişken $ (VariableName) olarak kullanılabilir. AppServiceApplicationUrl), örneğin , sonraki görevlerdeki Azure App SERVICE barındırılan URL 'sine başvurmak için.

Kullanım notları

  • Görev yalnızca Azure Resource Manager API 'leri ile birlikte kullanılabilir.
  • SSL hatalarını yok saymak için, VSTS_ARM_REST_IGNORE_SSL_ERRORS sürüm ardışık düzeninde değeri ile adlandırılmış bir değişken tanımlayın true .
  • Windows Web uygulamasını hedefleyen .net uygulamaları için, ERROR_FILE_IN_USEERROR_FILE_IN_USE ve uygulama çevrimdışına alma ayarlarının etkin olmasını sağlayarak hata ile dağıtım başarısızlığından kaçının. Sıfır kesinti süresi dağıtımı için yuva değiştirme seçeneğini kullanın.
  • Application Insights yapılandırılmış bir App Service dağıtım yaparken ve hedefteki ek dosyaları kaldırmayıetkinleştirdiyseniz, Application ınsights uzantısını güvenli bir durumda tutmak için dosyaları App_Data klasöründen de hariç tut ' u seçtiğinizden emin olun. Application Insights sürekli web işi App_Data klasörüne yüklendiği için bu gereklidir.

Örnek dağıtım sonrası betiği

Görev, uygulamanın yapıtları App Service başarıyla kopyalandıktan sonra Azure App Service çalışacak bir betik sağlayarak dağıtımı özelleştirmek için bir seçenek sağlar. Yapıt klasörünüzde bir satır içi dağıtım betiği ya da bir betik dosyasının yolunu ve adını sağlamayı tercih edebilirsiniz.

Bu, uygulama bağımlılıklarınızı doğrudan App Service geri yüklemek istediğinizde yararlı olur. Node, PHP ve Python uygulamaları için paketlerin geri yüklenmesi, uygulama bağımlılığı aracıdan Azure App Service bir büyük yapıtı kopyalanırken zaman aşımlarını önlemeye yardımcı olur.

Dağıtım betiğine bir örnek:

@echo off
if NOT exist requirements.txt (
 echo No Requirements.txt found.
 EXIT /b 0
)
if NOT exist "$(PYTHON_EXT)/python.exe" (
 echo Python extension not available >&2
 EXIT /b 1
)
echo Installing dependencies
call "$(PYTHON_EXT)/python.exe" -m pip install -U setuptools
if %errorlevel% NEQ 0 (
 echo Failed to install setuptools >&2
 EXIT /b 1
)
call "$(PYTHON_EXT)/python.exe" -m pip install -r requirements.txt
if %errorlevel% NEQ 0 (
 echo Failed to install dependencies>&2
 EXIT /b 1
)

Dağıtım yöntemleri

Bu görevde çeşitli dağıtım yöntemleri mevcuttur. Web Dağıtımı (msdeploy.exe) varsayılandır. Dağıtım seçeneğini değiştirmek için ek dağıtım seçenekleri ' ni genişletin ve dağıtım yöntemini seçin ek paket tabanlı dağıtım seçeneklerinden seçim yapın.

Azure App Service ve aracı türüne göre, görev uygun bir dağıtım teknolojisini seçer. Görev tarafından kullanılan farklı dağıtım teknolojileri şunlardır:

Varsayılan olarak, görev, giriş paketi türü, App Service türü ve aracı işletim sistemine göre uygun dağıtım teknolojisini seçmesini dener.

Mantığı otomatik algıla

Windows tabanlı aracılar için.

App Service türüPaket türüDağıtım yöntemi
Linux üzerinde WebApp veya Linux üzerinde İşlev UygulamasıKlasör/zip/jar
War
Zip Deploy
War dağıtımı
Kapsayıcılar için WebApp (Linux) veya kapsayıcılar için İşlev Uygulaması (Linux)Uygulama ayarlarını güncelleştirmeNA
Windows, İşlev Uygulaması Windows, apı uygulaması veya mobil uygulama üzerinde WebAppWar
Van
MsBuild paket türü veya sanal uygulamaya dağıtma


Klasör/zip
War dağıtımı
Zip Deploy
Web Dağıtımı

Eğer Postdeploymentscrıpt = = true ise, ZIP dağıtımı
Else, paketten Çalıştır

Windows olmayan aracılarda (herhangi bir App Service türü için), görev, uygulamayı dağıtmak için kudu REST apı 'lerini kullanır.

Web Dağıtımı

Web Dağıtımı (msdeploy.exe), Azure App Service aracısı kullanarak Windows bir Web uygulamasını Windows veya İşlev Uygulaması dağıtmak için kullanılabilir. Web Dağıtımı özelliklere sahiptir ve şunları gibi seçenekler sunar:

  • Kilitli dosyaları yeniden adlandır: Azure App Service ayarlarında MSDeploy bayrağını MSDEPLOY_RENAME_LOCKED_FILES = 1 ' i etkinleştirerek Web sunucusu tarafından hala kullanımda olan herhangi bir dosyayı yeniden adlandırın. Ayarlanırsa, bu seçenek, uygulama dağıtımı sırasında kilitlenen dosyaları yeniden adlandırmak için MSDeploy ' ı sağlar.

  • Hedefteki ek dosyaları Kaldır: App Service yapıt paketi veya dağıtılan klasörde eşleşen dosya olmayan Azure App Service dosyaları siler.

  • Dosyaları App_Data klasörden hariç tut: App_Data klasöründeki dosyaları (dağıtılan yapıt paketi/klasörde) Azure App Service dağıtıldığı şekilde engelleyin

  • Ek Web dağıtımı bağımsız değişkenleri: Azure App Service dağıtıldığında uygulanacak bağımsız değişkenler. Örnek: -disableLink:AppPoolExtension -disableLink:ContentExtension. Web Dağıtımı işlem ayarlarına daha fazla örnek için bkz. Web Dağıtımı işlem Ayarlar.

Microsoft Web Platformu Yükleyicisikullanarak aracıya Web Dağıtımı. Web Dağıtımı 3,5, paketlenmiş SQL desteği olmadan yüklenmelidir. Web Dağıtımı yüklenirken herhangi bir özel ayar seçmeniz gerekmez. Web Dağıtımı, C:\Program Files (x86) \IIS\Microsoft Web Dağıtımı v3 konumuna yüklenir.

Kudu REST API 'Leri

kudu REST apı 'leri , hedef Windows bir web uygulaması, linux üzerinde web uygulaması (yerleşik kaynak) veya İşlev Uygulaması olmak üzere hem Windows hem de Linux automation aracılarında çalışır. Bu görev, Azure App Service 'e dosya kopyalamak için kudu kullanır.

Container Registry

hedef bir Kapsayıcılar için Web App olduğunda hem Windows hem de Linux otomasyon aracılarında geçerlidir. Görev, uygun kapsayıcı kayıt defteri, depo, görüntü adı ve etiket bilgilerini ayarlayarak uygulamayı güncelleştirir. Ayrıca, kapsayıcı görüntüsü için bir başlangıç komutu geçirmek üzere görevi kullanabilirsiniz.

Zip Deploy

Bir .zip dağıtım paketi bekler ve dosya içeriğini Azure 'da App Service veya İşlev Uygulaması Wwwroot klasörüne dağıtır. Bu seçenek Wwwroot klasöründeki tüm var olan içeriğin üzerine yazar. Daha fazla bilgi için bkz. Azure işlevleri Için zip dağıtımı.

Paketten Çalıştır

ZIP dağıtımı ile aynı dağıtım paketini bekler. Ancak, dosyaları Wwwroot klasörüne dağıtmak yerine, tüm paket işlevler çalışma zamanına ve Wwwroot klasöründeki dosyalar salt okunurdur. Daha fazla bilgi için bkz. Azure İşlevlerinizi paket dosyasından çalıştırma.

War dağıtımı

. War dağıtım paketini bekler ve dosya içeriğini Azure 'daki App Service Wwwroot klasörüne veya webapps klasörüne dağıtır.

Sorun giderme

Hata: Azure için erişim belirteci getirilemedi. Kullanılan hizmet sorumlusunun geçerli ve kullanım dışı olduğunu doğrulayın.

Görev, Azure ile kimlik doğrulamak için hizmet bağlantdaki hizmet sorumlusunu kullanır. Hizmet sorumlusunun süresi dolmuşsa veya App Service izinleri yoksa, görev bu hata ile başarısız olur. Kullanılan hizmet sorumlusunun geçerliliğini ve uygulama kaydında mevcut olduğunu doğrulayın. Daha fazla bilgi için bkz. Azure abonelik kaynaklarınıza erişimi yönetmek için rol tabanlı erişim denetimi kullanma. Bu blog gönderisi Ayrıca hizmet sorumlusu kimlik doğrulamasını kullanma hakkında daha fazla bilgi içerir.

SSL hatası

App Service bir sertifika kullanmak istiyorsanız, sertifikanın güvenilir bir sertifika yetkilisi tarafından imzalanması gerekir. Web uygulamanız sertifika doğrulama hataları veriyorsa, büyük olasılıkla otomatik olarak imzalanan bir sertifika kullanıyorsunuz. VSTS_ARM_REST_IGNORE_SSL_ERRORStrue Hatayı çözümlemek için derleme veya yayın ardışık düzeninde bulunan değere adlı bir değişken ayarlayın.

Sürüm uzun süre kilitleniyor ve sonra başarısız oluyor

Bu sorun App Service planınızda yetersiz kapasiteden kaynaklanıyor olabilir. Bu sorunu çözmek için, kullanılabilir CPU, RAM ve disk alanını artırmak veya farklı bir App Service planıyla denemek için App Service örneğini ölçeklendirebilirsiniz.

5xx hata kodu

5xx hatası görüyorsanız, Azure hizmetinizin durumunu kontrol edin.

Hata: belirtilen düzene sahip bir paket bulunamadı

Görevde belirtilen paketin derlemede veya önceki bir aşamada yapıt olarak yayımlanıp yayımlanmadığını ve geçerli işe indirilip indirilmediğini denetleyin.

Hata: ' ZIP Deploy seçeneğini kullanarak yayımla msBuild paket türü için desteklenmez

MSBuild göreviyle oluşturulan Web paketleri (varsayılan bağımsız değişkenlerle), yalnızca Web Dağıtımı tarafından doğru şekilde dağıtılabilecek iç içe bir klasör yapısına sahiptir. Bu paketleri dağıtmak için Yayınla dağıtım seçeneği kullanılamaz. Paketleme yapısını dönüştürmek için şu adımları uygulayın:

  1. derleme çözümü görevinde MSBuild bağımsız değişkenlerini şu şekilde değiştirin :

    Yapı çözüm değerlerini gösteren ekran görüntüsü.

  2. Bir arşiv görevi ekleyin ve değerleri aşağıdaki gibi değiştirin:

    1. Kök klasörü veya dosyayı arşivlemek için değiştirin .

    2. Yolları arşivlemek için kök klasör adı seçimini kaldırın onay kutusu:

      Arşiv değerlerini gösteren ekran görüntüsü.

Windows üzerinde web uygulaması dağıtımı başarılı oldu ama uygulama çalışmıyor

Bunun nedeni web.config uygulamanızda mevcut olmaması olabilir. Kaynağınıza bir web.config dosyası ekleyebilir ya da görevin dosya dönüştürmeleri ve değişken değiştirme seçeneklerini kullanarak bir tane otomatik oluşturabilirsiniz.

  • Görev ' e tıklayın ve Python, Node.js, Go ve Java uygulamaları için web.config parametreleri oluşturma bölümüne gidin.

    web.config parametreleri oluştur Iletişim kutusu

  • Parametreleri düzenlemek için Python, Node.js, Go ve Java uygulamaları için web.config parametreleri Oluştur düğmesine tıklayın.

    Açılan Iletişim kutusu

  • Açılan listeden uygulama türü ' nü seçin.

  • Tamam ' a tıklayın. Bu, web.config oluşturmak için gereken web.config parametrelerini dolduracaktır.

Not

Bu bölüm kullanım dışıdır ve dosya dönüştürme göreviyle değiştirilmiştir.

ERROR_FILE_IN_USE

.net uygulamalarını Windows Web uygulamasına dağıttığınızda dağıtım, ERROR_FILE_IN_USEhata kodu ile başarısız olabilir. Hatayı gidermek için, kilitli dosyaların yeniden adlandırılmasına ve uygulamayı çevrimdışına alma seçeneklerinin görevde etkinleştirildiğinden emin olun. Sıfır kapalı kalma süresiyle dağıtımlar yapmak için yuva değiştirmeyi kullanın.

Kaynak kilitlenmesini önlemek için Paket dağıtımdan çalıştır yöntemini de kullanabilirsiniz.

Web Dağıtımı hatası

Web dağıtımını kullanarak uygulamanızı dağıtıyorsanız, bazı hata senaryolarında Web Dağıtımı günlükte bir hata kodu gösterir. Bir Web dağıtımı hatasıyla ilgili sorunları gidermek için , bkz..

App Service Ortamı'nda (ASE) web uygulaması dağıtımı çalışmıyor

  • Derleme aracı Azure DevOps ASE İç Ağ (ILB) ile aynı sanal ağda (alt ağ farklı olabilir) Load Balancer emin olun. Bu, aracının verilerden kod çekmesini ve ASE Azure DevOps dağıtmayı sağlar.
  • Azure DevOps kullanıyorsanız, aracıya İnternet'den erişilene gerek yok, ancak Azure DevOps Hizmeti'ne bağlanmak için yalnızca giden erişime ihtiyacı vardır.
  • Bir Sanal Ağa dağıtılmış TFS/Azure DevOps Server kullanıyorsanız, aracı tamamen yalıtılabilir.
  • Derleme aracısı, dağıtması gereken Web Uygulamasının DNS yapılandırmasıyla yapılandırıldı. Sanal Ağ'daki özel kaynakların içinde girişler Azure DNS, bunun aracı makinedeki konak dosyasına ekleniyor olması gerekir.
  • ASE yapılandırması için otomatik olarak imzalanan bir sertifika kullanılıyorsa, MSDeploy.It için dağıtım görevsinde "-allowUntrusted" seçeneğinin de true olarak VSTS_ARM_REST_IGNORE_SSL_ERRORS önerilir. ASE yapılandırması için sertifika yetkililerinden bir sertifika kullanılıyorsa, bu gerekli değildir.

SSS

Hizmet bağlantımı nasıl yapılandırmam gerekir?

Bu görev için bir Azure Resource Manager bağlantısı gerekir.

Application Analizler ile web işi dağıtımını nasıl Analizler?

Bir App Service'a dağıtım Analizler uygulama yapılandırmalı ve etkinleştirdiyseniz de etkinleştirmeniz Exclude files from the App_Data folder gerekir. Bu seçeneğin etkinleştirilmesi, Uygulama Analizler güvenli bir durumda tutar. Application Analizler continuous WebJob App_Data gereklidir.

Aracımı bir ara sunucuya dağıtım yaparken ara sunucu arkasında olacak şekilde nasıl App Service?

Kendi kendine barındırılan aracınız bir web proxy gerektiriyorsa, yapılandırma sırasında aracıyı ara sunucu hakkında bilgilendirin. Bunu yapmak, aracınıza ara sunucu üzerinden Azure Pipelines veya Azure DevOps Server bağlanmanıza olanak sağlar. Bir aracı arkasında kendinden konak aracı çalıştırma hakkında daha fazla bilgi web proxy.

Açık kaynak

Bu görev, üzerinde açık kaynak GitHub. Geri bildirim ve katkılar açıktır.

Azure Pipelines

Azure'da bir dizi App Services'e dağıtmak için bu görevi kullanın. Görev, Windows, Linux veya Mac çalıştıran platformlar arası aracılarda çalışır ve birkaç farklı temel dağıtım teknolojisi kullanır.

Görev, ASP.NET ,PHP,Java, Python,GoveASP.NET Core tabanlı web Node.js için çalışır.

Görev, aşağıdakiler gibi bir dizi Azure App Services'e dağıtmak için kullanılabilir:

Görev için önkoşullar

Görevin doğru çalışması için hedef makinelerde aşağıdaki önkoşulların ayarlanmış olması gerekir.

  • App Service örneği. Görev, bir Web Uygulaması projesini veya Azure İşlevi projesini, görev çalışmadan önce mevcut Azure App Service örnek olarak dağıtmak için kullanılır. App Service örneği, Azure portal buradan oluşturulabilir. Alternatif olarak, Azure PowerShell görevi, Web Uygulamasını sağlamak ve yapılandırmak üzere AzureRM PowerShell betiklerini çalıştırmak için kullanılabilir.

  • Azure Aboneliği. Azure'a dağıtmak için bir Azure aboneliğinin işlem hattına bağlı olması gerekir. Görev, Klasik Azure hizmet bağlantısıyla birlikte çalışmaz ve bu bağlantıları görevin ayarlarında listelez.