"IIS Express Web sunucusu başlatılamıyor." Visual Studio'da


113

Web servisimi görsel stüdyo üzerinden çalıştırmayı denedim. Şöyle bir sorunla karşılaştım:

---------------------------
Microsoft Visual Studio
---------------------------
Unable to launch the IIS Express Web server.

Failed to register URL "http://localhost:63591/" for site "xxxxxx" application
"/". Error description: The process cannot access the file because it is being
used by another process. (0x80070020)

---------------------------
OK   
---------------------------

Görev yöneticisini gördüm ve PID 4'ün Sistem tarafından kullanıldığını ve Açıklamasının olduğunu NT Kernel & System. buldum http service. Bu yüzden . Tüm bağımlılık hizmetleri durduruldu. Ancak http hizmetini durdurma konusunda bir sorunla karşılaşıyorum.

The service is starting or stopping.  Please try again later.

Bu yüzden servisi manuel olarak durdurmaya ve başlatmaya çalıştım. Ancak Bitir işlemi devre dışı bırakılır. Birinin bu sorunla ilgili yardımcı olabilmesi faydalı olacaktır.


1
Windows 10'u güncelledikten sonra sorunu görmek: developercommunity.visualstudio.com/content/problem/580466/…
Xiao

fwiw, yukarıdaki bağlantı burada deneyebileceğiniz bir bağlantıya işaret ediyornetsh http add iplisten ipaddress=::
Xiao

Yanıtlar:


139

Gönderen https://www.davidsalter.co.uk/unable-to-launch-the-iis-express-web-server-error-0x80070020/

Hata kodu 0x80070020araçları ERROR_SHARING_VIOLATIONIIS Express (veya IIS) vasıtası durumunda bunun dinlemek girişiminde bulunduğunu liman başka bir işlem tarafından kullanılmakta olduğunu.

netstatBağlantı noktasını hangi uygulamanın kullandığını bulmak için komutu kullanın .

netstat -ao | findstr <port_number_to_search_for>

aParametresi tüm bağlantıları ve dinleme bağlantı noktalarını görüntülemek için netstat söyler.

oParametre bağlantısıyla ilişkili işlem kimliği görüntülemek için netstat anlatır.

Yukarıdaki netstat komutunu çalıştırmak aşağıdaki gibi çıktılar üretecektir:

C:\>netstat -ao | findstr 4026
TCP    12.0.0.1:4026        cs-pc:4026         LISTENING       9544

Görüntülenen son sayı (burada 9544) işlem kimliğidir.


11
Mükemmel cevap! Yalnızca çözümü tanımlamakla kalmaz, aynı zamanda parametrelerin anlamını da dahil edersiniz. Keşke tüm cevaplar böyle olsaydı!
Christian Payne

8
Bu bana yardımcı oldu ve rahatsız edici PID'nin Chrome.exe olduğu ortaya çıktı. Chrome'u yeniden başlattım ve sorun ortadan kalktı.
astrosteve

1
Mükemmel cevap. Bunu kullanarak skype'ın hem 80 numaralı bağlantı noktasını hem de 443 numaralı bağlantı noktasını dinlediğini buldum. Skype'ı öldürdüm ve ardından iisexpress'i normal olarak başlatabildim, şimdi 80 ve 443 numaralı bağlantı noktaları için ekstra bağlamalarımı gösteriyorum
Alastair

3
yükseltilmiş bir cmd penceresinde çalıştırın , işlem kimliğinizle TASKKILL /PID 2756 /Fdeğiştirin2756
stackoverfloweth

14
Bu, -nanahtarla da önemli ölçüde daha hızlı yapılabilir - "sayısal" çıktı kullanır, yani IP adreslerini ana bilgisayar adlarına çözümlemek için DNS sorgulamakla zaman kaybetmez.
Tullo_x86

73

Windows 10'da Visual Studio 2019'dan bir proje çalıştırmaya çalışırken benzer bir sorun yaşadım. Bağlantı noktası görünüşe göre başka bir işlem tarafından kullanıldığından uygulama başlatılamadı. Ancak netstatkomut, bağlantı noktasının herhangi bir uygulama tarafından kullanılmadığını gösterdi.

Google'da 2 gün geçirdikten sonra benim için çalışan bir çözüm buldum. Kullanmaya çalıştığım bağlantı noktası, şu komutu çalıştırarak görebileceğiniz hariç tutulan bağlantı noktası aralığındaydı:

netsh interface ipv4 show excludedportrange protocol=tcp

Benim durumumda bu bağlantı noktalarını ayıran suçlular Windows için Docker ve Hyper-V idi.

Çözüm

Docker'ı kaldırdım (ihtiyacım olmadığı için) ve Hyper-V'yi devre dışı bıraktım. Hyper-V'yi devre dışı bırakmak için: Şuraya gidin: Denetim Masası-> Programlar ve Özellikler-> Windows özelliklerini açın veya kapatın. Hyper-V'nin işaretini kaldırın ve bilgisayarı yeniden başlatın.

Yeniden başlatmanın ardından komut netsh interface ipv4 show excludedportrange protocol=tcp, ayrılmış hiçbir bağlantı noktası göstermedi.

Ardından, yükseltilmiş bir komut satırından aşağıdaki komutu çalıştırarak uygulamamın bağlantı noktasını hariç tutulan bağlantı noktası aralığına ekledim:

netsh int ipv4 add excludedportrange protocol=tcp startport=50403 numberofports=1 store=persistent

Sonra Hyper-V'yi yeniden etkinleştirdim (gerekirse Docker yeniden yüklenebilir) ve bilgisayarı yeniden başlattım.

Hyper-V artık uygulamam tarafından kullanılan bağlantı noktasına müdahale etmeden bağlantı noktalarını ayırdı: Ayrılmış Bağlantı Noktası Aralıkları


Bu benim için çalıştı, ancak Docker'a ihtiyacım var, bu yüzden onu kaldırmak yerine başlangıçta devre dışı bıraktım.
cderrick

7
Bağlantı noktamı hariç tutulan aralığın dışında değiştirdim .. ama BU bana tonlarca zaman kazandırdı. Teşekkür ederim.
Cory

3
@Cory gibi, bağlantı noktamı vs aralığının dışında bir şey olacak şekilde değiştirdim, sinir bozucu çünkü şimdi bunu her yaptığımda referans uygulamalarını değiştirmem gerekiyor, ancak tam bir yeniden başlatmadan daha iyi.
Nick Rubino

1
Bunu yıllardır arıyordum . Portlarımı tam olarak hangi uygulamanın çaldığını belirlemenin bir yolu olup olmadığını merak ediyorum. Teşekkürler.
Simon Mourier

Hyper-V'yi devre dışı bırakmak ve yeniden başlatmak benim için
sorunu çözdü

30

Ben de aynı sorunu yaşadım. Visual Studio'yu yeniden başlattım ve işe yaradı.


1
Bilgisayarım güncellemelerden yeniden başlatıldı ve netstat bağlantı noktasını kullanan hiçbir işlem göstermedi. Bu, işe yarayan tek çözümdü. Teşekkürler!
goodies4uall

1
makinemi de yeniden başlatmak zorunda kaldı
Mahmoud Hboubati

Şaşırtıcı bir şekilde Visual Studio'yu (2017) yeniden başlatmak benim için de işe yaradı. Teşekkürler!
Thomas Gassmann

Benim durumumda, Windows 10 kutum mavi ekranlıydı ve iki kez yeniden başlatmak zorunda kaldım . Diğer web sitesi projeleri iyi çalıştı (farklı yerel bağlantı noktası) ve buradaki diğer yanıtların hiçbiri işe yaramadı. Proje için bağlantı noktasını değiştirmek de sorunu çözmedi. IIS Express'in kendisinde başka bir yapılandırma olmalı.
Granger

VS 2019'da F5 kullanarak hata ayıklama ile bir proje çalıştırdığımda, daha sonra başarısız olduğunda Ctrl + F5 kullanarak hata ayıklamadan çalıştırmayı denediğimde bu bana oluyor gibi görünüyor. Yeniden başlatma sorunu düzeltir, keşke ilk etapta olmasını gerçekten engelleyebilseydim.
pwhe23

29

Ben de aynı Sorunu yaşadım. @ Kautsky Lozano'nun yukarıda bahsettiği gibi Başka bir uygulama bu portu kullanıyor.

Yani [Windows işletim sistemi için] sadece:

  • Açık Kaynak İzleyicisi (Görev Yöneticisi -> Performans -> Açık Kaynak İzleyicisi)
  • Tıklayın sekmesi.
  • Ve TCP Bağlantıları'nda , IIS Express'in kullandığı Yerel Bağlantı Noktasını kullanan uygulamayı bulun ve kapatın. (benim durumumda firefox idi)

Mükemmel çalıştı!
Al Belmondo

12

Bir çözümü Visual Studio 2012'den 2015'e yükselttikten sonra aynı problemle karşılaştım. Buraya geldim ve netstatsadece başka hiçbir uygulamanın aynı portları kullanmadığını bulmak için koştum . Ben aynı eşlenen bağlantı noktalarıyla aynı siteleri vardı çıkıyor applicationhost.configat Users/<username>/Documents/IISExpress/configve applicationhost.configiçinde .vsklasörün benim çözüm içeride. Sorunun yükseltmeden hemen sonra başlamadığını da not etmeliyim. Bir sabah sürekli olarak başarısız olmaya başlar. Birkaç yeniden başlatma da sorunu çözmedi.

Belgelerimde depolanan sitelerden çakışan siteleri kaldırmak ve Visual Studio'yu yeniden başlatmak sorunu çözdü.


Bu bana yardımcı oldu: applicationhost.configiçindedir .vs\configçözüm klasörü altındaki klasöre.
Erik Oppedijk

9

Netstat zaten bağlantı noktasını kullanan hiçbir şey göstermiyorsa

netstat -ano | findstr <your port number>

Bağlantı noktası hariç tutulabilir, aralığın başka bir şey tarafından engellenip engellenmediğini görmek için bu komutu deneyin:

netsh interface ipv4 show excludedportrange protocol=tcp

Bir dizi bağlantı noktası için aralığı başlangıç ​​bağlantı noktasından kaldırmayı deneyebilirsiniz (Yönetici ile Komut İstemi gerekir):

netsh int ip delete excludedportrange protocol=tcp numberofports=<number of ports> startport=<start port>

Benim için engellemeyi kaldıramadım, sadece "Erişim reddedildi" mesajı aldım, bu yüzden sitem için başka bir bağlantı noktası seçmek zorunda kaldım.


Başka hiçbir şey yardımcı olmadı. Aralığın bağlantı noktası numaramı içerdiğini görebiliyordum netsh interface ipv4 show excludedportrange protocol=tcp. Bunu çözmek için bulana kadar çok zaman harcandı. Teşekkürler çok @john Leonard
jAntoni


4

Windows 10 ve / veya Visual Studio 16 + 'yı güncelledikten sonra , IISExpress'in artık bağlantıları kabul etmediği için herhangi bir geliştirme web sitesini kaydedememesi dahili bir hatadan kaynaklanabilir localhost.

Sorunu çözmek için, bağlayıcıyı yeniden kaydetmeniz yeterlidir. Bunu yapmak için, bir yönetimsel kabuktan aşağıdaki komutu çalıştırın:

netsh http add iplisten ipaddress=:: 

3

Netstat herhangi bir çakışma göstermemesine rağmen bu sorunu yeni yaşadım.

Aşağıdakiler benim için düzeltti:

  1. Visual Studio'yu kapatın
  2. Dosya Gezgini'ni açın
  3. Sorun teşkil eden projenin klasörüne gidin
  4. Obj ve bin klasörlerini silin
  5. * .User dosyasını silin (bu muhtemelen isteğe bağlıdır)
  6. Visual Studio'yu yeniden başlatın ve tekrar deneyin

2

Bir MVC projesini yükseltirken bu sorunu yaşadım . Yeni MVC .csproj dosyasını mevcut .csproj dosyamın üzerine kopyaladım, ardından tam olarak çalışan bir Projeye geri döndüm. Dikkate alamadığım şey, eski .csproj'daki mevcut bağlantı noktası numarasıdır. Yeni projenin yeni bir port numarası vardı, ancak Proje / Montaj Adını paylaştı. Bu, IIS Express'in aklını kaybetmesi ve bu istisnayı atması için yeterliydi.

Sadece eski bağlantı noktası numarasını git'in dışına çıkarmak ve IIS Express URL'sini Proje Ayarlarına eklemek için değiştirmek sorunu düzeltmek için yeterliydi.


2

Komut konsoluna girmeden en kolay ilk geçiş, tüm uygulamaları (VS dahil) kapatmak, ardından VS'yi kendi başına başlatmak ve tekrar denemektir. Tarayıcınız gibi çakışmaya neden olan başka bir uygulama olabilir. Benim durumumda Chrome buna neden oldu ve her şeyi kapatırken ve VS'yi yeniden başlatırken çözüldü. Chrome'u tekrar açtım ve her şey yolundaydı.

Yukarıdaki netstat şeyleri kullanışlıdır, ancak bana göre bu sadece benim önerdiğim şeyi yapamazsanız.


2

tüm cevapları özetlemek için. 2 çözüm var. İkisi de benim için çalıştı. - 1. Çözüm Aynı bağlantı noktasını kullanan uygulamayı öldürün. - Çözüm 2 IIS Express'i projeniz için farklı bir bağlantı noktası kullanacak şekilde yapılandırın.

Çözüm 1 (hata mesajındaki bağlantı noktasının 443 olduğunu varsayarsak) Komut satırında çalıştırın:

netstat -ao | findstr 443

şunu döndürür: TCP 0.0.0.0:443 pe01:0 LISTENING 2904 Son sayı (@ chris-schiffhauer sayesinde) öldürmek için PID'dir. Görev Yöneticisi -> İşlemler -> [Tüm Kullanıcılardan İşlemleri Göster] seçeneğine gidin, PID = 2904 ile bir işlemi sonlandırın. Benim durumumda, VmWare sunucusuydu.

Çözüm 2 (Mesajın: "Projem.Website0" sitesi için URL " http: // localhost: 433 / " kaydedilemediğini varsayarsak ... ). Aşağıdaki dosyayı notepad ++ ile açın: İçinde aşağıdakileri C:\Users\MY_USER_NAME\Documents\IISExpress\config\applicationhost.configiçeren bir satır bulun:

<site name="MyProject.Website0" id="...
...
            <bindings>
                <binding protocol="http" bindingInformation="*:80:localhost" />
                <binding protocol="https" bindingInformation="*:443:localhost" />
            </bindings>

Çakışan etiketi 433gibi başka bir şeye değiştirin 4330veya silin <binding.../>.


2

Benim durumumda, aşağıdakileri yapmak hile yaptı:

  • Siteyi .vs \\ config \ applicationhost.config dosyasından silin
  • Siteyi Documents \ IISExpress \ config \ applicationhost.config'den silin
  • IISUrl dosyasını .csproj dosyasından silin

Visual Studio'yu yeniden başlattığımda, projeye tamamen yeni bir bağlantı noktası numarası atadı ve mükemmel çalıştı


2

Bağlantı noktası numaraları eşleşmiyor

Benim durumumda sorun, çözüm klasörüm altındaki yapılandırma dosyasında .vs'de bulunan Bağlama Etiketlerimdeydi, bağlantı noktası numaraları eşleşmedi. Bağlamalar aşağıdaki gibiydi

<bindings>
     <binding protocol="http" bindingInformation=":16433:localhost" />
</bindings>

Ve ayarlarımda url’yi şu şekilde ayarladım: http://localhost:1943/

Yaptığım şey iç bağlamayı silmek ve web uygulamamı çalıştırmaktı, sonra farklı bir numara ile yeni bir bağlama oluşturdu, sonra yeni oluşturulan portu ayarlarıma kopyaladım, sonra hata gitti.


Bu sefer (bu sorunu daha önce yaşadım, burada çeşitli cevaplarda sunulan birçok nedenden biri oldu) nedeni buydu.
türlerBilinmeyen


1

Ben her şeyi kaldırarak bu sorunu düzeltileceği oldu <site>için </site>etiketleri

Users/<username>/Documents/IISExpress/config/applicatiohost.config dosya

<sites>
  <site>
     .
     .   ===> remove this content including the <site> and </site> tags.
     .
  </site>
</sites>

1

Aynı sorunu çözmek için yarım günümü boşa harcadıktan sonra, sonunda benim için işe yarayan çözümü eklemem gerektiğini hissettim.

TL; DR Eğer netstatsorunlu kullanımda, hala tamamen farklı bir aralıkta birkaç diğerlerini deneyin olmadığını gösterir

Bu sorunla daha önce karşılaştım, ancak genellikle görsel stüdyoyu yeniden başlatmayı, bağlantı noktalarını değiştirmeyi (1 artırarak) veya yeniden başlatmayı hile yapıyor. Ancak bu vesileyle bunların hiçbiri yardımcı netstatolmadı ve çelişkili bir süreç bulamadı. Hatta IIS ve görsel stüdyoyu yeniden yükledim ve müdahale edebileceğinden şüphelendiğim diğer birkaç programı kaldırdım. Görünüşe göre IIS aynı sitenin birden çok örneğini başlatmaya çalışıyordu.

Sonunda netstatolmadan koşmayı denedimfindstr . Aktif bağlantı noktalarının listesini görsel olarak taradım ve denediğim bağlantı noktalarının listelenmemesine rağmen, benzer aralıktaki bağlantı noktalarını kullanan birkaç işlem olduğunu fark ettim. Bunun yerine ücretsiz bir aralık aradım, bir bağlantı noktası numarası seçtim ve şimdi çalışıyor gibi görünüyor.

Bunun neden işe yaradığını açıklayabilecek biri varsa duymak isterim?


Bu çözüm de benim için düzeltti.
Rastographics

1

Bugün Visual Studio 2019'da bu sorunla karşılaştım ve sonunda sorunu çözmeden önce 3 saat geçirdim. Visual Studio, SSL bağlantı noktası numarasını izlemek için 2 dosya kullanır, bu nedenle her ikisini de düzeltmeniz ve Visual Studio kapalıyken ikisini de düzeltmeniz gerekir. İki dosya, çözümünüzün .vs \ ??? \ config klasöründe bulunan applicationhost.config dosyasıdır; ve ayrıca web projenizin .csproj.user klasörü. Her iki dosyayı da düzenleyin ve rahatsız edici yapılandırmaları kaldırın. Belki her iki dosyayı da silebilirsiniz. Ardından, uygulamanızı Visual Studio'da yeniden açın. İyi şanslar!


Çözümünüz sade eski moda bir web sitesi içeriyorsa (bir web uygulaması değil), bağlantı noktası numaraları da .sln
nuander

1
  1. Görsel stüdyoyu kapat
  2. ".vs" klasörünü sil
  3. "Localhost: 8080" bağlantı noktasını değiştirmeyi deneyin

Benim için çalıştı.


1

@ Zoti'nin talimatlarını takip ettim ve söz konusu bağlantı noktasını bulmak için Kaynak Monitörü'nü kullandım.

Outlook'un iletişim kanalı için rasgele bir bağlantı noktası atandığı ortaya çıktı. Hikayenin ahlaki, kesinlikle her şey olabilir.


1

Bu hatanın nedeni uygulamanıza yanlış port numarası vermenizdir.

just use http ports for your application to run

8080 numaraya yakın bağlantı noktasını kullanın, yani:

localhost: 8090

visual-Studio'da uygulamanız için bağlantı noktasını değiştirmek için

goto project properties > web > Server > ProjectUrl


0

Şunu zaten denedim:

  • Visual Studio yeniden başlatıldı
  • Belirli numaramı dinleyen mevcut tüm bağlantı noktalarını kontrol et, ancak her zaman sıfır sonuç döndürür. Portumda hiçbir işlem dinlemiyor.
  • Bunu da kullanmayı denedim ama sıfır sonuç.

    netstat -aon | bul ": 80"

  • Ayrıca kullanmayı denedim ama sıfır sonuç döndürdüm.

    netstat -ao | Findstr

Yaptığım şey bu " Microsoft.VsHub.Server.HttpHostx64.exe " dosyasını silip ardından projem başarıyla başladı ve tarayıcıda başlatıldı. Hata düzeltildi. Neden olduğundan emin değilim ama işe yarıyor.

İşte ekran görüntüsü:

görüntü açıklamasını buraya girin


0

Aynı sorunu yaşadım ancak yönetici ayrıcalıklarını kullanarak yeniden başlattığımda çözüldü. (Sadece yeniden başlatma olabilirdi)


0

Bugün de aynı sorunu yaşadım ve internette bulduğum hiçbir şey işe yaramadı. 2057 numaralı bağlantı noktasını yıllardır kullanıyorum, ancak birden bire artık çalışmadı. 2058 gibi başka bir düşük sayıya değiştirmek aynı hata mesajını verdi, ancak bunu 20057 olarak değiştirdiğimde her şey tekrar çalıştı. Belki daha düşük bağlantı noktası numaralarının işlenme biçiminde bir şeyler değişmiştir.


0

IIS Express, Visual Studio'da Çözümü Başlatamıyor

  • Görev Yöneticisine git
  • "Uygulama Çerçeve Ana Bilgisayarı" İşlemini Arayın
  • Bu İşlemi Bitir
  • Tekrar Çalıştırmayı Deneyin

0

Benim durumumda, uygulamayı LAN üzerinde çalışacak şekilde bağladım, yani uygulamaya mobil gibi başka cihazlardan bağlanıyorum. Görsel stüdyoyu yönetici olarak çalıştırması gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.