İşlem hattı çalıştırmalarıyla ilgili sorunları gidermeTroubleshoot pipeline runs

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2015Azure Pipelines | Azure DevOps Server 2020 |Azure DevOps Server 2019 | TFS 2018 - TFS 2015

Bu konu, genel sorun giderme kılavuzu sağlar.This topic provides general troubleshooting guidance. .NET Core hakkında belirli sorun giderme işlemleri için bkz. .NET Core sorun giderme.For specific troubleshooting about .NET Core, see .NET Core troubleshooting.

Not

Microsoft Team Foundation Server (TFS) 2018 ve önceki sürümlerde, derleme ve yayın işlem hatları tanımlar olarak adlandırılır, çalışmalara derlemeler denir, hizmet bağlantılarına hizmet uç noktaları denir, aşamalar ortamlar olarak adlandırılır ve işler aşamalar olarak adlandırılır.In Microsoft Team Foundation Server (TFS) 2018 and previous versions, build and release pipelines are called definitions, runs are called builds, service connections are called service endpoints, stages are called environments, and jobs are called phases.

İşlem hattınızla ilgili sorunları tanılamanıza yardımcı olması için aşağıdaki sorun giderme bölümlerini kullanabilirsiniz.You can use the following troubleshooting sections to help diagnose issues with your pipeline. Ardışık düzen hatalarının çoğu bu kategorilerden birine girer.Most pipeline failures fall into one of these categories.

İşlem hattı tetiklemezPipeline won't trigger

Bir işlem hattı hiç başlamazsa, aşağıdaki ortak tetikleyiciyle ilgili sorunları kontrol edin.If a pipeline doesn't start at all, check the following common trigger related issues.

Not

Çalıştırmanın bir başka nedeni de, son kullanıcının Azure DevOps oturumunu kapattıktan sonra kuruluşunuzun beş dakika sürmesidir.An additional reason that runs may not start is that your organization goes dormant five minutes after the last user signs out of Azure DevOps. Bundan sonra, derleme işlem hatlarınızın her biri bir kez daha çalışır.After that, each of your build pipelines will run one more time. Örneğin, kuruluşunuz devre dışı olduğunda:For example, while your organization is dormant:

  • Kuruluşunuzdaki gecelik bir kod derlemesi, birisi yeniden oturum açana kadar yalnızca bir gece çalışacaktır.A nightly build of code in your organization will run only one night until someone signs in again.
  • Başka bir git deposunun CI derlemeleri, birisi yeniden oturum açana kadar çalışmayı durdurur.CI builds of an Other Git repo will stop running until someone signs in again.

UI ayarları YAML tetikleyici ayarını geçersiz kılUI settings override YAML trigger setting

YAML işlem hatları, işlem trigger pr hattı ayarları Kullanıcı arabirimindeki ve tetikleme ayarlarını geçersiz kılabilir.YAML pipelines can have their trigger and pr trigger settings overridden in the pipeline settings UI. triggerVeya pr tetikleyicilerinin tetikme görünmüyor ise, bu ayarı kontrol edin.If your trigger or pr triggers don't seem to be firing, check that setting. İşlem hattınızı düzenlenirken .. . öğesini seçin ve ardından tetikler.While editing your pipeline, choose ... and then Triggers.

İşlem hattı ayarları kullanıcı arabirimi

Deponuz için kullanılabilen tetikleyici türleri (sürekli tümleştirme veya çekme isteği doğrulama) için buradaki YAML tetikleyicisini geçersiz kıl ayarını kontrol edin.Check the Override the YAML trigger from here setting for the types of trigger (Continuous integration or Pull request validation) available for your repo.

YAML tetikleyicisini buradan geçersiz kılın.

Çekme isteği Tetikleyicileri Azure Repos desteklenmezPull request triggers not supported with Azure Repos

prTetikleyiciniz tetiklenmezse ve Azure Repos kullanıyorsanız, bunun nedeni pr tetikleyicilerinin Azure Repos desteklenmez.If your pr trigger isn't firing, and you are using Azure Repos, it is because pr triggers aren't supported for Azure Repos. Git Azure Repos, çekme isteği derleme doğrulamasını uygulamak için dal ilkeleri kullanılır.In Azure Repos Git, branch policies are used to implement pull request build validation. Daha fazla bilgi için bkz. çekme isteği doğrulaması Için dal ilkesi.For more information, see Branch policy for pull request validation.

CI ve PR tetikleyicilerinde yanlış yapılandırılmış dal filtreleriBranch filters misconfigured in CI and PR triggers

Bir YAML PR veya CI tetikleyicisi tanımladığınızda, include exclude dallar ve yollar için hem hem de yan tümceleri belirtebilirsiniz.When you define a YAML PR or CI trigger, you can specify both include and exclude clauses for branches and paths. includeYan tümcesinin işlemenizden ayrıntılarla eşleştiğinden ve exclude yan tümcesinin bunları dışiçermediğinden emin olun.Ensure that the include clause matches the details of your commit and that the exclude clause doesn't exclude them.

Önemli

Bir YAML PR veya CI tetikleyicisi tanımladığınızda, yalnızca açıkça dahil edilecek dallar bir çalıştırma tetikleyecektir.When you define a YAML PR or CI trigger, only branches explicitly configured to be included will trigger a run. Dahil edilen ekleme, önce işlenir ve ardından listeden kaldırılır.Includes are processed first, and then excludes are removed from the list. Dışlama belirtirseniz ancak herhangi bir içerme belirtmezseniz hiçbir şey tetiklemez.If you specify an exclude but don't specify any includes, nothing will trigger. Daha fazla bilgi için bkz. Tetikleyiciler.For more information, see Triggers.

Bir YAML PR veya CI tetikleyicisi tanımladığınızda, include exclude dallar, Etiketler ve yollar için hem hem de yan tümceleri belirtebilirsiniz.When you define a YAML PR or CI trigger, you can specify both include and exclude clauses for branches, tags, and paths. includeYan tümcesinin işlemenizden ayrıntılarla eşleştiğinden ve exclude yan tümcesinin bunları dışiçermediğinden emin olun.Ensure that the include clause matches the details of your commit and that the exclude clause doesn't exclude them. Daha fazla bilgi için bkz. Tetikleyiciler.For more information, see Triggers.

Not

Yan tümce içermeyen bir exclude yan tümce belirtirseniz include , yan tümcesinde belirtmeye eşdeğerdir * include .If you specify an exclude clause without an include clause, it is equivalent to specifying * in the include clause.

Zamanlanan tetikleyici saat dilimi dönüştürmeleriScheduled trigger time zone conversions

YAML zamanlanan Tetikleyiciler UTC saat dilimi kullanılarak ayarlanır.YAML scheduled triggers are set using UTC time zone. Zamanlanan Tetikleyiciniz doğru zamanda tetiklenmek üzere görünmüyorsa, gün ayarını da hesaba ayırarak UTC ve yerel saat diliminiz arasındaki dönüşümleri onaylayın.If your scheduled triggers don't seem to be firing at the right time, confirm the conversions between UTC and your local time zone, taking into account the day setting as well. Daha fazla bilgi için bkz. Zamanlanmış Tetikleyiciler.For more information, see Scheduled triggers.

UI ayarları YAML zamanlanmış tetikleyicilerini geçersiz kılarUI settings override YAML scheduled triggers

YAML işlem hattınızda hem YAML zamanlanmış Tetikleyiciler hem de UI tanımlı zamanlanmış Tetikleyiciler varsa, yalnızca UI tanımlı zamanlanmış Tetikleyiciler çalıştırılır.If your YAML pipeline has both YAML scheduled triggers and UI defined scheduled triggers, only the UI defined scheduled triggers are run. YAML işlem hattınızda YAML tanımlı zamanlanmış Tetikleyicileri çalıştırmak için, işlem hattı ayarları Kullanıcı arabiriminde tanımlanan zamanlanmış Tetikleyicileri kaldırmanız gerekir.To run the YAML defined scheduled triggers in your YAML pipeline, you must remove the scheduled triggers defined in the pipeline settings UI.

Bir YAML işlem hattından işlem hattı ayarları Kullanıcı arabirimine erişmek için, işlem hattınızı düzenleyin, ... öğesini seçin ve ardından tetikler.To access the pipeline settings UI from a YAML pipeline, edit your pipeline, choose ... and then Triggers.

İşlem hattı ayarları kullanıcı arabirimi

Zamanlanan tüm Tetikleyicileri kaldırın.Remove all scheduled triggers.

İşlem hattı ayarları Kullanıcı arabirimindeki zamanlanmış Tetikleyicileri silin.

Tüm UI zamanlanmış Tetikleyicileri kaldırıldıktan sonra, YAML zamanlanmış tetikleyicilerinin çalışmaya başlaması için bir gönderme yapılmalıdır.Once all UI scheduled triggers are removed, a push must be made in order for the YAML scheduled triggers to start running. Daha fazla bilgi için bkz. Zamanlanmış Tetikleyiciler.For more information, see Scheduled triggers.

İşlem hattı kuyrukları, ancak hiçbir şekilde aracı yokPipeline queues but never gets an agent

İşlem hattı kuyruklarınız, ancak hiçbir bir aracıyı alırsa, aşağıdaki öğeleri kontrol edin.If your pipeline queues but never gets an agent, check the following items.

Not

Aşağıdaki senaryolar paralel bir iş tüketmez:The following scenarios won't consume a parallel job:

  • Yayın işlem hatlarını veya çok aşamalı YAML işlem hatlarını kullanırsanız, bir çalıştırma yalnızca bir aşamada etkin bir şekilde dağıtıldığında bir paralel iş tüketir.If you use release pipelines or multi-stage YAML pipelines, then a run consumes a parallel job only when it's being actively deployed to a stage. Yayın bir onay veya el ile müdahale beklerken, paralel bir iş tüketmez.While the release is waiting for an approval or a manual intervention, it does not consume a parallel job.
  • Bir sunucu işini çalıştırdığınızda veya yayın işlem hatlarını kullanarak bir dağıtım grubuna dağıttığınızda, herhangi bir paralel iş kullanamazsınız.When you run a server job or deploy to a deployment group using release pipelines, you don't consume any parallel jobs.

Daha fazla bilgi: paralel bir iş ardışık düzen tarafından nasıl kullanılır, dağıtım öncesi onaylar, sunucu işleri, dağıtım grupları eklemeLearn more: How a parallel job is consumed by a pipeline, Add Pre-deployment approvals, Server jobs, Deployment groups

Paralel iş limitleri-kullanılabilir aracı yok veya ücretsiz limitlerinizi vurunParallel job limits - no available agents or you have hit your free limits

Şu anda başka işlem hatlarını çalıştırıyorsanız, kalan paralel işleriniz olmayabilir veya ücretsiz limitlerinizinolduğunu görebilirsiniz.If you are currently running other pipelines, you may not have any remaining parallel jobs, or you may have hit your free limits.

Limitlerinizi denetlemek için proje ayarları, paralel işler' e gidin.To check your limits, navigate to Project settings, Parallel jobs.

İşlem hatları eşzamanlı işleri

Sınırları inceledikten sonra, şu anda kaç iş çalıştığını ve kaç tane kullanılabilir olduğunu görmek için eşzamanlılık ' i kontrol edin.After reviewing the limits, check concurrency to see how many jobs are currently running and how many are available.

Şu anda başka işlem hatlarını çalıştırıyorsanız, kalan paralel işleriniz olmayabilir veya ücretsiz limitlerinizinolduğunu görebilirsiniz.If you are currently running other pipelines, you may not have any remaining parallel jobs, or you may have hit your free limits.

Azure DevOps 'daki güvenlik duvarının arkasındaki Azure Key Vault erişilemiyorCan't access Azure Key Vault behind firewall from Azure DevOps

İşlem hattınızdan Azure Key Vault erişemiyorsanız, güvenlik duvarı Azure DevOps Services Aracısı IP adresini engelliyor olabilir.If you can't access Azure Key Vault from your pipeline, the firewall might be blocking the Azure DevOps Services agent IP address. Haftalık json dosyasında Yayınlanan IP adresleri allowlistelenmiş olmalıdır.The IP addresses published in the weekly JSON file must be allowlisted. Daha fazla bilgi için bkz. Microsoft tarafından barındırılan aracılar: ağ.For more information, see Microsoft-hosted agents: Networking.

Yeterli eşzamanlılık yokYou don't have enough concurrency

Ne kadar eşzamanlılık olduğunu denetlemek için:To check how much concurrency you have:

  1. Limitlerinizi denetlemek için proje ayarları, paralel işler' e gidin.To check your limits, navigate to Project settings, Parallel jobs.

    Eş zamanlı işlem hattı limitleri

    Ayrıca https://dev.azure.com/{org}/_settings/buildqueue?_a=concurrentJobs , ' a giderek veya günlüklerdeki paralel işleri Yönet ' i seçerek bu sayfaya ulaşabilirsiniz.You can also reach this page by navigating to https://dev.azure.com/{org}/_settings/buildqueue?_a=concurrentJobs, or choosing manage parallel jobs from the logs.

    Paralel işleri yönetme

  2. Hangi havuzun eşzamanlılık üzerinde (Microsoft tarafından barındırılan veya şirket içinde barındırılan havuzlar) denetlemesini istediğinizi belirleyin ve sürmekte olan Işleri görüntüle' yi seçin.Determine which pool you want to check concurrency on (Microsoft hosted or self hosted pools), and choose View in-progress jobs.

  3. Şu anda X/x işlerinin çalıştığını bildiren bir metin görürsünüz.You'll see text that says Currently running X/X jobs. Her iki sayı de aynı ise işler, çalışmakta olan işler tamamlanana kadar bekler.If both numbers are the same then jobs will wait until currently running jobs complete.

    Sürmekte olan işleri görüntüle

    Sıraya alınan işler dahil olmak üzere, Proje ayarlarından Aracı havuzları ' nı seçerek tüm işleri görüntüleyebilirsiniz.You can view all jobs, including queued jobs, by selecting Agent pools from the Project settings.

    Sıraya alınan işleri görüntüleme

    Bu örnekte, eşzamanlı iş sınırı bir, çalışan bir iş ve bir sıraya alınmış bir iş olur.In this example, the concurrent job limit is one, with one job running and one queued up. Bu örnekte olduğu gibi, tüm aracılar işleri çalıştırmakla meşgul olduğunda, ek işler sıralandığında aşağıdaki ileti görüntülenir: The agent request is not running because all potential agents are running other requests. Current position in queue: 1 .When all agents are busy running jobs, as in this example, the following message is displayed when additional jobs are queued: The agent request is not running because all potential agents are running other requests. Current position in queue: 1. Bu örnekte, iş kuyruğun bir yanında olduğundan, konumu bir olur.In this example the job is next in the queue so its position is one.

İşiniz onay bekliyor olabilirYour job may be waiting for approval

Onay bekleyen bir işlem hattı, bir sonraki aşamaya taşınamaz.Your pipeline may not move to the next stage because it is waiting on approval. Daha fazla bilgi için bkz. onayları ve denetimleri tanımlama.For more information, see Define approvals and checks.

Kullanılabilir tüm aracılar kullanımdaAll available agents are in use

Tüm aracılarınız Şu anda meşgulse işler bekleyebilir.Jobs may wait if all your agents are currently busy. Aracılarınızı denetlemek için:To check your agents:

  1. https://dev.azure.com/{org}/_settings/agentpools sayfasına gidinNavigate to https://dev.azure.com/{org}/_settings/agentpools

  2. Denetlenecek aracı havuzunu seçin, bu örnekte FabrikamPool ve aracılar' ı seçin.Select the agent pool to check, in this example FabrikamPool, and choose Agents.

    Aracı durumu

    Bu sayfa şu anda çevrimiçi/çevrimdışı ve kullanımda olan tüm aracıları gösterir.This page shows all the agents currently online/offline and in use. Bu sayfadan havuza ek aracılar da ekleyebilirsiniz.You can also add additional agents to the pool from this page.

Bir aracının yeteneklerine eşleşmeyen taleplerDemands that don't match the capabilities of an agent

İşlem hattınızda aracılarınızın herhangi birinin özelliklerini karşılamayan talepler varsa, işlem hattı başlatılmaz.If your pipeline has demands that don't meet the capabilities of any of your agents, your pipeline won't start. Aracılarınızdan yalnızca bazılarında istenen özellikler varsa ve bunlar şu anda diğer işlem hatlarını çalıştırıyorsa, söz konusu aracılardan biri kullanılabilir duruma gelene kadar işlem hattınız durdurulur.If only some of your agents have the desired capabilities and they are currently running other pipelines, your pipeline will be stalled until one of those agents becomes available.

Aracılarınız ve işlem hatlarınızda belirtilen özellikleri ve talepleri denetlemek için bkz. Özellikler.To check the capabilities and demands specified for your agents and pipelines, see Capabilities.

Not

Yetenekler ve talepler genellikle yalnızca kendi kendine barındırılan aracılarla kullanılır.Capabilities and demands are typically used only with self-hosted agents. İşlem hattınızda aracı sistem özellikleri ile eşleşmeyen talepler varsa, aracıları eşleşen yetenekler ile açıkça etiketlendirilmezseniz, işlem hatları bir aracı almaz.If your pipeline has demands that don't match the system capabilities of the agent, unless you have explicitly labelled the agents with matching capabilities, your pipelines won't get an agent.

TFS Aracısı bağlantı sorunlarıTFS agent connection issues

Aracı bağlantısı test edilirken yapılandırma başarısız oluyor (yalnızca şirket içi TFS)Config fails while testing agent connection (on-premises TFS only)

Testing agent connection.
VS30063: You are not authorized to access http://<SERVER>:8080/tfs

Aracı yapılandırılırken yukarıdaki hata alınmışsa TFS makinenizde oturum açın.If the above error is received while configuring the agent, log on to your TFS machine. Internet Information Services (IIS) Yöneticisi 'ni başlatın.Start the Internet Information Services (IIS) manager. Anonim kimlik doğrulamasının etkinleştirildiğinden emin olun.Make sure Anonymous Authentication is enabled.

TFS anonim kimlik doğrulaması etkin

Aracı kayıp iletişimiAgent lost communication

Bu sorun, hata iletisi ile belirlenir:This issue is characterized by the error message:

The job has been abandoned because agent did not renew the lock. Ensure agent is running, not sleeping, and has not lost communication with the service.

Bu hata, aracının birkaç dakikalık bir yayma için sunucu ile iletişimi kaybettiğini işaret ediyor olabilir.This error may indicate the agent lost communication with the server for a span of several minutes. Aracı makinede ağ veya diğer kesintiler için kural yapmak üzere aşağıdakileri denetleyin:Check the following to rule out network or other interruptions on the agent machine:

  • Otomatik güncelleştirmelerin kapalı olduğunu doğrulayın.Verify automatic updates are turned off. Bir güncelleştirmeden makine yeniden başlatması, derleme veya yayının yukarıdaki hatayla başarısız olmasına neden olur.A machine reboot from an update will cause a build or release to fail with the above error. Bu tür kesintiyi önlemek için güncelleştirmeleri denetimli bir biçimde uygulayın.Apply updates in a controlled fashion to avoid this type of interruption. Aracı makinesini yeniden başlatmadan önce, aracının havuz yönetimi sayfasında devre dışı olarak işaretlenmesi ve çalışan tüm derleme bitmesine izin vermek gerekir.Before rebooting the agent machine, the agent should first be marked disabled in the pool administration page and let any running build finish.
  • Uyku ayarlarının kapalı olduğunu doğrulayın.Verify the sleep settings are turned off.
  • Aracı bir sanal makinede çalışıyorsa, makinenin sistem durumunu birden çok dakika etkileyebilecek canlı geçişden veya diğer VM bakım işleminden kaçının.If the agent is running on a virtual machine, avoid any live migration or other VM maintenance operation that may severely impact the health of the machine for multiple minutes.
  • Aracı bir sanal makinede çalışıyorsa, konak makineye yönelik aynı işletim sistemi güncelleştirme önerileri ve uyku ayarı önerileri de geçerlidir.If the agent is running on a virtual machine, the same operating-system-update recommendations and sleep-setting recommendations apply to the host machine. Ayrıca, konak makineyi çok etkileyen diğer bakım işlemleri de vardır.And also any other maintenance operations that several impact the host machine.
  • Performans İzleyicisi günlüğü veya diğer sistem durumu ölçümü günlüğe kaydetme, bu hata türünü aracı makinede kısıtlanmış kaynak kullanılabilirliğine (disk, bellek, sayfa dosyası, işlemci, ağ) ilişkilendirmenize yardımcı olabilir.Performance monitor logging or other health metric logging can help to correlate this type of error to constrained resource availability on the agent machine (disk, memory, page file, processor, network).
  • Sorunu ağ sorunlarıyla ilişkilendirmenin bir diğer yolu da bir sunucuya süresiz olarak ping ve çıktıyı bir dosyaya döklerin zaman damgalarıyla birlikte dökümünü belirlemektir.Another way to correlate the error with network problems is to ping a server indefinitely and dump the output to a file, along with timestamps. İyi bir zaman aralığı kullanın, örneğin 20 veya 30 saniye.Use a healthy interval, for example 20 or 30 seconds. Azure Pipelines kullanıyorsanız, bir Internet etki alanına ping eklemek isteyebilirsiniz, örneğin, bing.com.If you are using Azure Pipelines, then you would want to ping an internet domain, for example bing.com. Şirket içi TFS sunucusu kullanıyorsanız, aynı ağ üzerindeki bir sunucuya ping eklemek istersiniz.If you are using an on-premises TFS server, then you would want to ping a server on the same network.
  • Makinenin ağ aktarım hızı yeterli olduğunu doğrulayın.Verify the network throughput of the machine is adequate. Aktarım hızını denetlemek için çevrimiçi bir hız testi gerçekleştirebilirsiniz.You can perform an online speed test to check the throughput.
  • Proxy kullanıyorsanız, aracının proxy 'nizi kullanacak şekilde yapılandırıldığını doğrulayın.If you use a proxy, verify the agent is configured to use your proxy. Aracı dağıtım konusuna başvurun.Refer to the agent deployment topic.

TFS Iş aracısı başlatılmadıTFS Job Agent not started

Bu, "bir aracının istenmesi bekleniyor" Web konsolundaki bir iletiyle ayırdedilir.This may be characterized by a message in the web console "Waiting for an agent to be requested". TFSJobAgent 'ı doğrulayın (görünen ad: Visual Studio Team Foundation arka plan Iş Aracısı) Windows hizmeti başlatıldı.Verify the TFSJobAgent (display name: Visual Studio Team Foundation Background Job Agent) Windows service is started.

Yanlış yapılandırılmış bildirim URL 'SI (1. x aracı sürümü)Misconfigured notification URL (1.x agent version)

Bu, "bir aracıdan konsol çıkışı bekleniyor" Web konsolundaki bir iletiyle nitelenebilir ve işlem zaman aşımına uğrar.This may be characterized by a message in the web console "Waiting for console output from an agent", and the process eventually times out.

Eşleşmeyen bir bildirim URL 'SI, çalışan işleminin sunucuya bağlanamamasına neden olabilir.A mismatching notification URL may cause the worker to process to fail to connect to the server. Bkz. Team Foundation Yönetim Konsolu, uygulama katmanı.See Team Foundation Administration Console, Application Tier. 1. x Aracısı, ile yapılandırılan URL 'YI kullanarak ileti kuyruğunu dinler.The 1.x agent listens to the message queue using the URL that it was configured with. Ancak, bir iş iletisi kuyruktan çekiliyorsa, çalışan işlemi sunucuya geri iletişim kurmak için bildirim URL 'sini kullanır.However, when a job message is pulled from the queue, the worker process uses the notification URL to communicate back to the server.

Hizmet performansında düşme için Azure DevOps durumunu denetlemeCheck Azure DevOps status for a service degradation

Aracılar için daha fazla sıra süresi gibi bir hizmet düşüşüne neden olabilecek sorunlar için Azure DevOps hizmeti durum portalı ' nı kontrol edin.Check the Azure DevOps Service Status Portal for any issues that may cause a service degradation, such as increased queue time for agents. Daha fazla bilgi için bkz. Azure DevOps hizmet durumu.For more information, see Azure DevOps Service Status.

İşlem hattı tamamlanamazsaPipeline fails to complete

İşlem hatınız bir aracı alırsa ancak tamamlanamazsa, aşağıdaki yaygın sorunları kontrol edin.If your pipeline gets an agent but fails to complete, check the following common issues. Sorununuz bunlardan biriyle eşleşmiyorsa, bkz. sorunları tanılamak için günlükleri al.If your issue doesn't seem to match one of these, see Get logs to diagnose problems.

İş zaman aşımıJob time-out

İşlem hattı uzun bir süre çalışabilir ve sonra iş zaman aşımı nedeniyle başarısız olur. İş zaman aşımı, kullanılan aracıya göre değişir.A pipeline may run for a long time and then fail due to job time-out. Job timeout closely depends on the agent being used. Ücretsiz Microsoft barındırılan aracılarının, özel bir depo için iş başına en fazla 60 dakikalık zaman aşımı ve genel bir depo için 360 dakika vardır.Free Microsoft hosted agents have a max timeout of 60 minutes per job for a private repository and 360 minutes for a public repository. Bir iş için maksimum zaman aşımını artırmak üzere aşağıdakilerden herhangi birini tercih edebilirsiniz.To increase the max timeout for a job, you can opt for any of the following.

  • Kullanılan depodan bağımsız olarak tüm işler için size 360 dakika alacak bir Microsoft barındırılan Aracısı satın alınBuy a Microsoft hosted agent which will give you 360 minutes for all jobs, irrespective of the repository used
  • Aracıdan kaynaklanan zaman aşımı sorunlarını gidermek için kendi kendine barındırılan bir aracı kullanınUse a self-hosted agent to rule out any timeout issues due to the agent

İş zaman aşımıhakkında daha fazla bilgi edinin.Learn more about job timeout.

Not

Microsoft tarafından barındırılan aracı işleriniz zaman aşımına uğradıysanız, bir iş için maksimum zaman aşımından daha az olan bir işlem hattı zaman aşımı belirtmadığınızdan emin olun.If your Microsoft-hosted agent jobs are timing out, ensure that you haven't specified a pipeline timeout that is less than the max timeout for a job. Denetlemek için bkz. zaman aşımları.To check, see Timeouts.

Kodu indirirken sorunlarIssues downloading code

İşlem hatm bir kullanıma alma adımında başarısız oluyorMy pipeline is failing on a checkout step

checkoutKuruluşunuzdaki farklı bir projede bulunan Azure Repos git deposunda bir adım kullanıyorsanız, iş yetkilendirmesi kapsamını geçerli proje olarak sınırla ayarının devre dışı olduğundan emin olun veya işlem hattınızı depoya erişebildiğinden emin olmak için kapsamlı derleme kimliklerinizde adımları izleyin.If you are using a checkout step on an Azure Repos Git repository in your organization that is in a different project than your pipeline, ensure that the Limit job authorization scope to current project setting is disabled, or follow the steps in Scoped build identities to ensure that your pipeline has access to the repository.

Ardışık düzen, sınırlı iş yetkilendirme kapsamı nedeniyle depoya erişemediği zaman, bu hatayı alırsınız Git fetch failed with exit code 128 ve günlüklerinizin şuna benzer bir giriş vardır Remote: TF401019: The Git repository with name or identifier <your repo name> does not exist or you do not have permissions for the operation you are attempting.When your pipeline can't access the repository due to limited job authorization scope, you will receive the error Git fetch failed with exit code 128 and your logs will contain an entry similar to Remote: TF401019: The Git repository with name or identifier <your repo name> does not exist or you do not have permissions for the operation you are attempting.

İşlem hatlarınız hemen ile başarısız olursa Could not find a project that corresponds with the repository , checkout adımda veya depo kaynağı bildiriminde projenizin ve depo adınızın doğru olduğundan emin olun.If your pipeline is failing immediately with Could not find a project that corresponds with the repository, ensure that your project and repository name are correct in the checkout step or the repository resource declaration.

Team Foundation Sürüm Denetimi (TFVC) sorunlarıTeam Foundation Version Control (TFVC) issues

Bazı dosyaları indirmeden kaynakları alGet sources not downloading some files

Bu, tf get komutundan "tüm dosyalar güncel" günlüğündeki bir iletiyle ayırdedilir.This may be characterized by a message in the log "All files up to date" from the tf get command. Yerleşik hizmet kimliğinin kaynakları indirme izni olduğunu doğrulayın.Verify the built-in service identity has permission to download the sources. Yapı işlem hattının Genel sekmesindeki seçili yetkilendirme kapsamına bağlı olarak, kimlik projesi koleksiyonu derleme hizmeti veya proje derleme hizmeti kaynakları indirmek için izne sahip olmalıdır.Either the identity Project Collection Build Service or Project Build Service will need permission to download the sources, depending on the selected authorization scope on General tab of the build pipeline. Sürüm denetimi Web Kullanıcı arabiriminde, klasör hiyerarşisinin herhangi bir düzeyindeki proje dosyalarına göz atabilir ve güvenlik ayarlarını kontrol edebilirsiniz.In the version control web UI, you can browse the project files at any level of the folder hierarchy and check the security settings.

Team Foundation proxy aracılığıyla kaynakları alGet sources through Team Foundation Proxy

Aracıyı bir Team Foundation Proxy 'Si aracılığıyla kaynakları almak üzere yapılandırmanın en kolay yolu, TFSPROXY aracının farklı çalıştır kullanıcısı IÇIN TFVC ara sunucusunu işaret eden ortam değişkenini ayarlar.The easiest way to configure the agent to get sources through a Team Foundation Proxy is set environment variable TFSPROXY that point to the TFVC proxy server for the agent's run as user.

Windows:Windows:

    set TFSPROXY=http://tfvcproxy:8081
    setx TFSPROXY=http://tfvcproxy:8081 // If the agent service is running as NETWORKSERVICE or any service account you can't easily set user level environment variable

macOS/Linux:macOS/Linux:

    export TFSPROXY=http://tfvcproxy:8081

İşlem hatm, MSBUILD gibi bir komut satırı adımında başarısız oluyorMy pipeline is failing on a command-line step such as MSBUILD

Bir derleme veya sürüm başarısızlığının Azure Pipelines/TFS ürün sorununun (aracı veya görevler) sonucu olup olmadığını daraltmak yararlı olur.It is helpful to narrow whether a build or release failure is the result of an Azure Pipelines/TFS product issue (agent or tasks). Derleme ve sürüm sorunları da dış komutlardan kaynaklanabilir.Build and release failures may also result from external commands.

Hatalı görev tarafından yürütülen tam komut satırı için günlüklere bakın.Check the logs for the exact command-line executed by the failing task. Komutu komut satırından yerel olarak çalıştırmaya çalışmak sorunu yeniden oluşturabilir.Attempting to run the command locally from the command line may reproduce the issue. Komutu kendi makinenizden yerel olarak çalıştırmak ve/veya makinede oturum açmak ve hizmet hesabı olarak komutu çalıştırmak yararlı olabilir.It can be helpful to run the command locally from your own machine, and/or log-in to the machine and run the command as the service account.

Örneğin, derleme işlem hattınızdaki MSBuild bölümünde sorun mu (örneğin, MSBuild veya Visual Studio Build görevini mi kullanıyorsunuz)?For example, is the problem happening during the MSBuild part of your build pipeline (for example, are you using either the MSBuild or Visual Studio Build task)? Bu durumda, aynı MSBuild komutunu aynı bağımsız değişkenleri kullanarak yerel bir makinede çalıştırmayı deneyin.If so, then try running the same MSBuild command on a local machine using the same arguments. Sorunu yerel bir makinede yeniden oluşturamıyorsanız, sonraki adımlarınız MSBuild sorununu araştırmanız gerekir.If you can reproduce the problem on a local machine, then your next steps are to investigate the MSBuild problem.

Dosya düzeniFile layout

Araçlar, kitaplıklar, üst bilgiler ve bir derleme için gereken diğer işlerin konumu, barındırılan aracıda yerel makinenizden farklı olabilir.The location of tools, libraries, headers, and other things needed for a build may be different on the hosted agent than from your local machine. Bu dosyalardan birini bulamadığı için bir yapı başarısız olursa, aracıdaki düzeni incelemek için aşağıdaki komut dosyalarını kullanabilirsiniz.If a build fails because it can't find one of these files, you can use the below scripts to inspect the layout on the agent. Bu, eksik dosyayı izlemenize yardımcı olabilir.This may help you track down the missing file.

Geçici bir konumda yeni bir YAML işlem hattı oluşturun (ör. sorun giderme amacıyla yeni bir depo oluşturulur).Create a new YAML pipeline in a temporary location (e.g. a new repo created for the purpose of troubleshooting). Yazılı olarak, komut dosyası yolunuzda dizinleri arar.As written, the script searches directories on your path. İsterseniz SEARCH_PATH= diğer yerleri aramak için satırı düzenleyebilirsiniz.You may optionally edit the SEARCH_PATH= line to search other places.

# Script for Linux and macOS
pool: { vmImage: ubuntu-latest } # or whatever pool you use
steps:
- checkout: none
- bash: |
    SEARCH_PATH=$PATH  # or any colon-delimited list of paths
    IFS=':' read -r -a PathDirs <<< "$SEARCH_PATH"
    echo "##[debug] Found directories"
    for element in "${PathDirs[@]}"; do
        echo "$element"
    done;
    echo;
    echo;  
    echo "##[debug] Found files"
    for element in "${PathDirs[@]}"; do
        find "$element" -type f
    done
# Script for Windows
pool: { vmImage: windows-2019 } # or whatever pool you use
steps:
- checkout: none
- powershell: |
    $SEARCH_PATH=$Env:Path
    Write-Host "##[debug] Found directories"
    ForEach ($Dir in $SEARCH_PATH -split ";") {
      Write-Host "$Dir"
    }
    Write-Host ""
    Write-Host ""
    Write-Host "##[debug] Found files"
    ForEach ($Dir in $SEARCH_PATH -split ";") {
      Get-ChildItem $Dir -File -ErrorAction Continue | ForEach-Object -Process {
        Write-Host $_.FullName
      }
    }

Yerel komut istemi ve aracı arasındaki farklılıklarDifferences between local command prompt and agent

Bir yerel makinede bir komut yürütürken ve bir aracı üzerinde bir derleme veya yayın çalışırken bazı farklılıkların etkili olduğunu aklınızda bulundurun.Keep in mind, some differences are in effect when executing a command on a local machine and when a build or release is running on an agent. Aracı, Linux, macOS veya Windows üzerinde bir hizmet olarak çalışacak şekilde yapılandırıldıysa, etkileşimli bir oturum açma oturumu içinde çalıştırılmazdır.If the agent is configured to run as a service on Linux, macOS, or Windows, then it is not running within an interactive logged-on session. Etkileşimli bir oturum açma oturumu olmadan kullanıcı arabirimi etkileşimi ve diğer sınırlamalar mevcuttur.Without an interactive logged-on session, UI interaction and other limitations exist.

Dosya veya klasör kullanımda hatalarFile or folder in use errors

Dosya veya klasör kullanım hataları genellikle şöyle bir hata iletileriyle belirtilir:File or folder in use errors are often indicated by error messages such as:

  • Access to the path [...] is denied.
  • The process cannot access the file [...] because it is being used by another process.
  • Access is denied.
  • Can't move [...] to [...]

Sorun giderme adımları:Troubleshooting steps:

Kullanımdaki dosyaları ve klasörleri AlgılaDetect files and folders in use

Windows 'da, Işlem İzleyicisi gibi araçlar belirli bir dizin altında dosya olaylarının bir izlemesini yakalamak olabilir.On Windows, tools like Process Monitor can be to capture a trace of file events under a specific directory. Ya da zaman içinde bir anlık görüntü için Işlem Gezgini veya tanıtıcı gibi araçlar kullanılabilir.Or, for a snapshot in time, tools like Process Explorer or Handle can be used.

Virüsten koruma için dışlamaAnti-virus exclusion

Dosyalarınızı tarayan virüsten koruma yazılımı, derleme veya sürüm sırasında dosya veya klasör kullanımda hatalara neden olabilir.Anti-virus software scanning your files can cause file or folder in use errors during a build or release. Aracı dizininiz ve yapılandırılmış "çalışma klasörü" için virüsten koruma önleme dışlaması eklemek, virüsten koruma yazılımının engel olma işlemi olarak belirlenmesine yardımcı olabilir.Adding an anti-virus exclusion for your agent directory and configured "work folder" may help to identify anti-virus software as the interfering process.

MSBuild ve/nodeReuse: falseMSBuild and /nodeReuse:false

Derlemeniz sırasında MSBuild 'i çağırırsanız, bağımsız değişkenini /nodeReuse:false (kısa form) geçirdiğinizden emin olun /nr:false .If you invoke MSBuild during your build, make sure to pass the argument /nodeReuse:false (short form /nr:false). Aksi halde, derleme tamamlandıktan sonra MSBuild işlemleri çalışmaya devam eder.Otherwise MSBuild process(es) will remain running after the build completes. İşlem (es), sonraki bir sonraki derleme olasılığına içinde bir süre boyunca kalır.The process(es) remain for some time in anticipation of a potential subsequent build.

MSBuild 'in bu özelliği, MSBuild işleminin çalışma diziniyle bir çakışma nedeniyle bir dizini silme veya taşıma girişimlerine engel olabilir.This feature of MSBuild can interfere with attempts to delete or move a directory - due to a conflict with the working directory of the MSBuild process(es).

MSBuild ve Visual Studio derleme görevleri, /nr:false MSBuild 'e geçirilen bağımsız değişkenlere zaten ekler.The MSBuild and Visual Studio Build tasks already add /nr:false to the arguments passed to MSBuild. Ancak, kendi betiğinizden MSBuild 'i çağırırsanız, bağımsız değişkenini belirtmeniz gerekir.However, if you invoke MSBuild from your own script, then you would need to specify the argument.

MSBuild ve/maxcpucount: [n]MSBuild and /maxcpucount:[n]

MSBuild ve Visual Studio Build gibi yapı görevleri varsayılan olarak, anahtarla MSBuild 'i çalıştırın /m .By default the build tasks such as MSBuild and Visual Studio Build run MSBuild with the /m switch. Bazı durumlarda bu durum, birden çok işlem dosyası erişim sorunu gibi sorunlara neden olabilir.In some cases this can cause problems such as multiple process file access issues.

MSBuild 'i tek seferde /m:1 yalnızca bir işlem çalıştırmaya zorlamak için derleme görevlerinize bağımsız değişkeni eklemeyi deneyin.Try adding the /m:1 argument to your build tasks to force MSBuild to run only one process at a time.

MSBuild 'in eşzamanlı işlem özelliğinden yararlanılarak dosya kullanımı sorunları ortaya çıkabilir.File-in-use issues may result when leveraging the concurrent-process feature of MSBuild. Bağımsız değişkeni /maxcpucount:[n] (kısa biçim) belirtilmeden /m:[n] MSBuild 'in yalnızca tek bir işlem kullanmasını söyler.Not specifying the argument /maxcpucount:[n] (short form /m:[n]) instructs MSBuild to use a single process only. MSBuild veya Visual Studio Build görevlerini kullanıyorsanız, varsayılan olarak eklenen "/m" bağımsız değişkenini geçersiz kılmak için "/m: 1" belirtmeniz gerekebilir.If you are using the MSBuild or Visual Studio Build tasks, you may need to specify "/m:1" to override the "/m" argument that is added by default.

Aralıklı veya tutarsız MSBuild sorunlarıIntermittent or inconsistent MSBuild failures

Aralıklı veya tutarsız MSBuild hatalarıyla karşılaşıyorsanız, MSBuild 'i yalnızca tek işlem kullanacak şekilde deneyin.If you are experiencing intermittent or inconsistent MSBuild failures, try instructing MSBuild to use a single-process only. Aralıklı veya tutarsız hatalar, hedef yapılandırmanızın MSBuild 'in eşzamanlı işlem özelliğiyle uyumsuz olduğunu gösteriyor olabilir.Intermittent or inconsistent errors may indicate that your target configuration is incompatible with the concurrent-process feature of MSBuild. Bkz. MSBuild ve/maxcpucount: [n].See MSBuild and /maxcpucount:[n].

İşlem yanıt vermiyorProcess stops responding

İşlemin yanıt verme nedenleri ve sorun giderme adımları:Process stops responding causes and troubleshooting steps:

Giriş bekleniyorWaiting for Input

Yanıt vermeyi durduran bir işlem, bir işlemin giriş için beklediğini gösterebilir.A process that stops responding may indicate that a process is waiting for input.

Aracının etkileşimli oturum açmış bir oturumun komut satırından çalıştırılması, bir işlemin giriş için bir iletişim kutusuyla mı sorulmadığını belirlemenize yardımcı olabilir.Running the agent from the command line of an interactive logged on session may help to identify whether a process is prompting with a dialog for input.

Aracıyı hizmet olarak çalıştırmak, programların giriş isteminde bulunarak ortadan kaldırmaya yardımcı olabilir.Running the agent as a service may help to eliminate programs from prompting for input. Örneğin, .NET 'te programlar, isteyip istemediğinizi tespit etmek için System. Environment. Userınteractıve Boole değerini kullanabilir.For example in .NET, programs may rely on the System.Environment.UserInteractive Boolean to determine whether to prompt. Bir Windows hizmeti olarak çalışırken, değer false olur.When running as a Windows service, the value is false.

İşlem dökümünü alProcess dump

İşlemin dökümünden çözümlenmesi, kilitlenmiş bir işlemin ne kadar beklediğini belirlemesine yardımcı olabilir.Analyzing a dump of the process can help to identify what a deadlocked process is waiting on.

WiX projesiWiX project

Özel MSBuild Günlükçüler etkinleştirildiğinde WiX projesi oluşturma, WX 'in çıkış akışında bekleyen kilitlenmeye neden olabilir.Building a WiX project when custom MSBuild loggers are enabled, can cause WiX to deadlock waiting on the output stream. Ek MSBuild bağımsız değişkeni eklemek /p:RunWixToolsOutOfProc=true soruna geçici bir çözüm olur.Adding the additional MSBuild argument /p:RunWixToolsOutOfProc=true will workaround the issue.

Birden çok platform için satır sonlarıLine endings for multiple platforms

İşlem hatlarını birden çok platformda çalıştırdığınızda bazen farklı satır sonları ile ilgili sorunlarla karşılaşabilirsiniz.When you run pipelines on multiple platforms, you can sometimes encounter problems with different line endings. Tarihsel olarak, Linux ve MacOS kullanılan satır besleme (LF) karakterleri, Windows bir satır başı ve bir satır besleme (CRLF) kullandı.Historically, Linux and macOS used linefeed (LF) characters while Windows used a carriage return plus a linefeed (CRLF). Git, otomatik olarak satırları bir depoda ve Windows üzerindeki çalışma dizininde bulunan CRLF 'de otomatik hale getirerek farkı telafi etmeye çalışır.Git tries to compensate for the difference by automatically making lines end in LF in the repo but CRLF in the working directory on Windows.

Çoğu Windows aracı yalnızca LF sonları ile iyidir ve bu otomatik davranış çözenden daha fazla soruna neden olabilir.Most Windows tools are fine with LF-only endings, and this automatic behavior can cause more problems than it solves. Satır sonlarını temel alan sorunlarla karşılaşırsanız, git 'i her yerde LF tercih etmek üzere yapılandırmanızı öneririz.If you encounter issues based on line endings, we recommend you configure Git to prefer LF everywhere. Bunu yapmak için, .gitattributes deponuzın köküne bir dosya ekleyin.To do this, add a .gitattributes file to the root of your repository. Bu dosyada, aşağıdaki satırı ekleyin:In that file, add the following line:

* text eol=lf

' (Tek tırnak) eklenmiş değişkenlerVariables having ' (single quote) appended

İşlem hattınızda, komutunu kullanarak değişkenleri ayarlayan bir bash betiği varsa ##vso , ' ayarladığınız değişkenin değerine ek bir eklene eklenebilir.If your pipeline includes a Bash script that sets variables using the ##vso command, you may see an additional ' appended to the value of the variable you set. Bu, ile etkileşim nedeniyle oluşur set -x .This occurs because of an interaction with set -x. Çözüm, set -x bir değişken ayarlamadan önce geçici olarak devre dışı bırakılır.The solution is to disable set -x temporarily before setting a variable. Bunu yapmak için bash sözdizimi set +x .The Bash syntax for doing that is set +x.

set +x
echo ##vso[task.setvariable variable=MY_VAR]my_value
set -x

Bunun nedeni nedir?Why does this happen?

Birçok Bash komut dosyası, set -x hata ayıklamaya yardımcı olacak komutu içerir.Many Bash scripts include the set -x command to assist with debugging. Bash, tam olarak yürütülen komutu izler ve STDOUT ile yankılandı.Bash will trace exactly what command was executed and echo it to stdout. Bu, aracının ##vso komutu iki kez görüntülemesine neden olur ve ikinci kez Bash ' karakteri sonuna eklemiş olur.This will cause the agent to see the ##vso command twice, and the second time, Bash will have added the ' character to the end.

Örneğin, şu işlem hattını göz önünde bulundurun:For instance, consider this pipeline:

steps:
- bash: |
    set -x
    echo ##vso[task.setvariable variable=MY_VAR]my_value

Stdout üzerinde, aracı iki satır görür:On stdout, the agent will see two lines:

##vso[task.setvariable variable=MY_VAR]my_value
+ echo '##vso[task.setvariable variable=MY_VAR]my_value'

Aracı ilk satırı gördüğünde, MY_VAR "my_value" doğru değerine ayarlanır.When the agent sees the first line, MY_VAR will be set to the correct value, "my_value". Ancak, ikinci satırı gördüğünde aracı her şeyi satırın sonuna kadar işler.However, when it sees the second line, the agent will process everything to the end of the line. MY_VAR , "my_value '" olarak ayarlanacak.MY_VAR will be set to "my_value'".

Betik yürütüldüğünde bir Python uygulaması için kitaplıklar yüklenmediLibraries aren't installed for Python application when script executes

Bir Python uygulaması dağıtıldığında, bazı durumlarda bir CI/CD işlem hattı çalıştırılır ve kod başarıyla dağıtılır, ancak tüm bağımlılık kitaplıklarını yüklemeden sorumlu olan requirements.txt dosyası yürütülmez.When a Python application is deployed, in some cases, a CI/CD pipeline runs and the code is deployed successfully, but the requirements.txt file that's responsible for installing all dependency libraries doesn't execute.

Bağımlılıkları yüklemek için App Service dağıtım görevinde bir dağıtım sonrası betiği kullanın.To install the dependencies, use a post-deployment script in the App Service deployment task. Aşağıdaki örnek, dağıtım sonrası betikte kullanmanız gereken komutu gösterir.The following example shows the command you must use in the post-deployment script. Senaryonuza yönelik betiği güncelleştirebilirsiniz.You can update the script for your scenario.

D:\home\python364x64\python.exe -m pip install -r requirements.txt

Hizmet bağlantılarıyla ilgili sorunları gidermek için bkz. hizmet bağlantısı sorun giderme.To troubleshoot issues related to service connections, see Service connection troubleshooting.

Azure Pipelines aracılığıyla Azure DevOps 'tan bir statik Web sitesine. css ve. js gibi statik içerik dağıtmayı Depolama Gezgini etkinleştirinEnable Storage Explorer to deploy static content like .css and .js to a static website from Azure DevOps via Azure Pipelines

Bu senaryoda, Web sitesine içerik yüklemek için Azure dosya kopyalama görevini kullanabilirsiniz.In this scenario, you can use the Azure File Copy task to upload content to the website. Web kapsayıcısına içerik yüklemek için Içerik yükleme bölümünde açıklanan araçlardan herhangi birini kullanabilirsiniz.You can use any of the tools described in Uploading content to upload content to the web container.

Sorunları tanılamak için günlükleri alGet logs to diagnose problems

Önceki önerilerden hiçbiri sorununuzu eşleşmezse, başarısız işlem hattınızı tanılamak için günlüklerdeki bilgileri kullanabilirsiniz.If none of the previous suggestions match your problem, you can use the information in the logs to diagnose your failing pipeline.

Tamamlanmış derleme veya sürüminizdeki günlüklere bakarak başlayın.Start by looking at the logs in your completed build or release. İşlem hattı çalıştırma özetine gidip işi ve görevi seçerek günlükleri görüntüleyebilirsiniz.You can view logs by navigating to the pipeline run summary and selecting the job and task. Belirli bir görev başarısız olursa, bu görev için günlüklere bakın.If a certain task is failing, check the logs for that task.

İşlem hattı derleme özetindeki günlükleri görüntülemenin yanı sıra, ek tanılama bilgilerini içeren tamamlanmış günlükleri indirebilir ve sorun gidermenize yardımcı olacak daha ayrıntılı Günlükler yapılandırabilirsiniz.In addition to viewing logs in the pipeline build summary, you can download complete logs which include additional diagnostic information, and you can configure more verbose logs to assist with your troubleshooting.

Günlükleri yapılandırma ve kullanma hakkında ayrıntılı yönergeler için bkz. işlem hattı sorunlarını tanılamak için günlükleri gözden geçirme.For detailed instructions for configuring and using logs, see Review logs to diagnose pipeline issues.

Daha fazla yardıma ihtiyacım var.I need more help. Bir hata buldum.I found a bug. Önerim var.I've got a suggestion. Nereye gidebilirim?Where do I go?

Abonelik, faturalandırma ve teknik destek alınGet subscription, billing, and technical support

Sorunları bildirin veya Geliştirici topluluğu'nda geri bildirim gönderin.Report any problems or submit feedback at Developer Community.

Önerileriniz için hoş geldiniz:We welcome your suggestions: