VS 2012, özel bağlama ana bilgisayarıyla IIS kullanan projeyi yükleyemiyor - IIS Express kullandığını düşünüyor


85

IIS kullanan bir ASP.NET projem var. IIS sitesi, özel bağlama ana bilgisayar adını kullanacak şekilde yapılandırıldı. Proje dosyası aşağıdaki ayarları içerir:

...
<UseIISExpress>false</UseIISExpress>
...
<ProjectExtensions>
  <VisualStudio>
    <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
      <WebProjectProperties>
        <UseIIS>True</UseIIS>
        <AutoAssignPort>False</AutoAssignPort>
        <DevelopmentServerPort>8662</DevelopmentServerPort>
        <DevelopmentServerVPath>/</DevelopmentServerVPath>
        <IISUrl>http://custom.host.name/</IISUrl>
        <NTLMAuthentication>False</NTLMAuthentication>
        <UseCustomServer>False</UseCustomServer>
        <CustomServerUrl></CustomServerUrl>
        <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
      </WebProjectProperties>
    </FlavorProperties>
  </VisualStudio>
</ProjectExtensions>
...

Proje bu şekilde yapılandırıldığında, siteye adresinden erişebilirim http://custom.host.name/ve VS hata ayıklama sırasında otomatik olarak IIS alt işlemine eklenir.

Projeyi yeniden yüklediğimde (çözümü kapatarak / yeniden açarak veya proje bağlam menüsünde kaldırarak / yeniden yükleyerek) beklenmedik bir şey oluyor. Proje yüklenemedi, (load failed)çözüm gezgininde proje adının sağında görüntülenir ve aşağıdaki mesajla birlikte mesaj kutusu gösterilir (ayrıca Çıktı penceresinde de görüntülenir):

The URL 'http://custom.host.name/' for Web project 'Some.Asp.Net.Project' 
is configured to use IIS Express as the web server but the URL is currently
configured on the local IIS web server. To open this project, you must use
IIS Manager to remove the bindings using this URL from the local IIS web server.

Proje sitesi yapılandırmasını IIS Express applicationhost.configdosyasından kaldırmayı denedim , ancak yardımcı olmadı.

Varsayılan site altında projeyi IIS Uygulamasıyla eşlerken bu sorunla karşılaşmıyorum.

VS sürümü Ultimate 2012 Güncelleme 3'tür.


3
Evet, bu projede IIS Express'i bir kez kullandığım için VS2013 ile aynı sorunu yaşıyorum ... Gerçekten can sıkıcı!
kipusoep

3
Csproj veya csproj.user dosyalarını düzenlemeyi ve UseIISExpressfalse olarak ayarlamayı deneyin . stackoverflow.com/a/19103452/138938
Jon Crowell

2
@HeadofCatering, bu sorunla karşılaştım, ancak UseIISExpress projeler .csproj dosyasında zaten false olarak ayarlanmıştı. Ancak, sadece IIS araması, csproj dosyası içinde (<ProjectExtensions><VisualStudio><FlavorProperties> <WebProjectProperties>) "<UseIIS> True </UseIIS>" XML etiketini bulmam ve basitçe "< UseIIS> True </UseIIS> "bunu görsel stüdyosunun projeyi yeniden yükleyebilmesi için yaptı. Umarım bunun istenmeyen başka bir etkisi olmamıştır!
mgrandi

2
@mgrandi Yazım hatasına dikkat edin; ayarı <UseIIS>True</UseIIS>için <UseIIS>False</UseIIS>de benim için hile yaptı. Önerin için teşekkürler!
Dion V.

Yanıtlar:


205

Yönetici olarak açmak sorunu benim için çözmedi. Ne benim için sabit açılış oldu hem.csproj ve .csproj.userdosya ve her ikisi vardı sağlamak UseIISExpressiçin ayarlanır false.

Benim durumumda, .csproj.userdosya işaretlenmiş .csprojolmasına rağmen dosyayı geçersiz kılıyordu .SaveServerSettingsInUserFilefalse

<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <UseIISExpress>false</UseIISExpress> 
    <!-- ... -->
</Project>

48
Csproj.user'ı silmek nihayet sorunumu çözdü. Teşekkür ederim!
Bryan Sumter

Çok teşekkür ederim, csproj ayarlarına bakarak kafamı kırıyordum. Her şey güzel görünüyordu. Csproj.user dosyasını sildikten sonra herhangi bir şikayet olmadan projeyi yüklemeye başladı ++ 1
Esen

47

Çözüm: *.csproj.userdosyayı sil !


ANCAK sildikten sonra *.csproj.userdüzenleyemezsiniz*.csproj
niz_sh

21

" SaveServerSettingsInUserFile " öğesini True olarak ayarladım ve benim için çalıştı.

<ProjectExtensions>
<VisualStudio>
  <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
    <WebProjectProperties>
      <UseIIS>True</UseIIS>
      <AutoAssignPort>True</AutoAssignPort>
      <DevelopmentServerPort>50584</DevelopmentServerPort>
      <DevelopmentServerVPath>/</DevelopmentServerVPath>
      <IISUrl>http://localhost:50584/</IISUrl>
      <NTLMAuthentication>False</NTLMAuthentication>
      <UseCustomServer>False</UseCustomServer>
      <CustomServerUrl>
      </CustomServerUrl>
      <SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
    </WebProjectProperties>
  </FlavorProperties>
</VisualStudio>

Kaynak: buraya tıklayın


4

IISexpress için kullanımı etkinleştir seçeneğini kullandığınızda, applicationHost.Config (% userprofile% \ iisexpress \ config konumunda bulunur), ayarlarınızın yazılmasını önlemek için "Sunucu ayarlarını tüm kullanıcılara uygula (proje dosyasında sakla)" seçeneğini işaretlemeniz gerekir. yourProject.csproj.user içinde proje ayarları

bunu yapmak project.csproj dosyanızı düzenlemek ve yazmakla <WebProjectProperties> <UseIIS>True</UseIIS> <AutoAssignPort>True</AutoAssignPort> <DevelopmentServerPort>62242</DevelopmentServerPort> <DevelopmentServerVPath>/</DevelopmentServerVPath> <IISUrl>http://localhost:8100/Claims/</IISUrl> <OverrideIISAppRootUrl>True</OverrideIISAppRootUrl> <IISAppRootUrl>http://localhost:8100/Claims/</IISAppRootUrl> <NTLMAuthentication>False</NTLMAuthentication> <UseCustomServer>False</UseCustomServer> <CustomServerUrl></CustomServerUrl> <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> </WebProjectProperties> aynıdır IISExpress'i etkinleştirirseniz ve applicationHost.config dosyanız proje ayarlarınızla ilgili girişi içermiyorsa, "Sanal Dizin Oluştur" düğmesine basmanız yeterlidir. !

Bu yardımcı olur umarım


Bu görsel stüdyonun hangi versiyonu? VS Pro 2013'te bu seçeneğe sahip değilim
Matt R

@Matt R: VS2012 pro'yu aldım, bu yüzden sizin sürümünüz için de aynı olacağını varsayıyorum. çözüm gezgininde, web.uygulama projenizi seçin, sağ tıklayın ve "özellikler" i seçin - ardından sekmeli bir pencere açılır "Web" sekmesini seçin ve cevapta eklediğim ekran görüntüsünü görmelisiniz ... ve geç kaldığım için özür dilerim Cevap!
zobidafly

3

Benim durumumda * .csproj.user dosyasını silmek iyi çalıştı


2

Aynı sorunu yaşadım, benim için tek yapmam gereken bir yönetici olarak görsel stüdyoyu açmaktı ve bu benim için sorunu çözdü.

o kadar basit ki visual studio 2012'ye sağ tıklayın ve "yönetici olarak çalıştır" ı tıklayın. Bu yardımcı olur umarım


2

Benim için her ikisinin kombinasyonu Windows 7 64 bit ile Visual Studio 2015 Önizleme için çalıştı:
1. * .csproj.user dosyasını ve
2. <UseIISExpress>false</UseIISExpress>Çözüm Dosyasında silin .
Adım 2 Adımları: Visual Studio'da Project ==> Kaldır ===> Çözümü Düzenleyin


1

Bu yeterli

Bu satırı x.csproj proje dosyasında yorumlayın

<!--<UseIIS>True</UseIIS>-->

x.csproj: error: ' x ' Web projesi için ' http: // localhost / x ' URL'si web sunucusu olarak IIS Express'i kullanacak şekilde yapılandırılmış, ancak URL şu anda yerel IIS web sunucusunda yapılandırılmış durumda. Bu projeyi açmak için, bu URL'yi kullanarak bağları yerel IIS web sunucusundan kaldırmak için IIS Yöneticisi'ni kullanmanız gerekir.


1

IIS kullanacak şekilde yapılandırılmış bir proje web sitesini (myproject.mycompany.local) bulamadığı için yüklenemediğinde buraya geldim - web sitesi web tarayıcıma düzgün bir şekilde yüklenmesine rağmen.

Çözüm, sitenin IIS 7'deki bağlantısının ana bilgisayar adının "myproject.mycompany.local" olarak ayarlanmasını sağlamaktı. Sitenizin bağlamalarına ulaşmak için:

  1. IIS 7'de, sol gezinme panelinde siteyi seçin.
  2. Sağdaki Eylemler panelinde Veri Bağlantıları'nı tıklayın ...

Siteniz web tarayıcısına da yüklenmiyorsa, bunun nedeni büyük olasılıkla hosts dosyanızda bunun için bir girişinizin olmamasıdır:

127.0.0.1    myproject.mycompany.local

1

Projeniz bir çözümün parçasıysa, çözüm dosyasını (.sln) açın ve proje bölümünü düzenleyin.

ProjectSection(WebsiteProperties) = preProject
    UseIISExpress = "false"

Benim için çalıştı.


0

Bu sorun bugün VS 2013'teki günümü mahvediyordu. Yukarıdakilerin hepsini denedim, ancak IIS'de bir Web sitesi oluşturana ve bu bölümü .csproj dosyasında (özellikle IISUrl öğesi) doldurana kadar projenin yüklenmesini sağlayamadım:

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
          <AutoAssignPort>True</AutoAssignPort>
          <DevelopmentServerPort>81</DevelopmentServerPort>
          <DevelopmentServerVPath>/</DevelopmentServerVPath>
          <IISUrl>http://localhost/SomeProject</IISUrl>
          <NTLMAuthentication>False</NTLMAuthentication>
          <UseCustomServer>False</UseCustomServer>
          <CustomServerUrl>
          </CustomServerUrl>
          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>


bu çok mantıklı. Yine de çalışmayı başaramadım.
Winnemucca

0

Aynı sorunu yaşadım, yönetici olarak çalıştırmak benim için işe yaramadı.

<UseIIS>True</UseIIS>Projenin ".csproj" dosyasında geçici olarak false olarak ayarlamak projeyi yükleyebilir, ancak çözüm yeniden başlatıldıktan veya kapatıldıktan sonra değer True'ya dönüyordu.

Daha düzgün bir cevap için @Cyrus'un cevabını tamamlayarak (benim için çalıştı), projenin csproj.user dosyasına daha fazla odaklandım ve sorunun tam kaynağını buldum: <UseIISExpress>true</UseIISExpress>false olarak ayarlayıp projeyi yeniden yükledim . csproj.user dosyasını silmeden iyi çalışıyor. sonuç şuna benzer:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectView>ProjectFiles</ProjectView>
    <UseIISExpress>false</UseIISExpress>
    <IISExpressSSLPort />
    <IISExpressAnonymousAuthentication />
    <IISExpressWindowsAuthentication />
    <IISExpressUseClassicPipelineMode />
    <NameOfLastUsedPublishProfile>My Project's Name</NameOfLastUsedPublishProfile>
  </PropertyGroup>

Benim durumumda, Visual Studio'yu normal olarak (yönetici olarak değil) her açtığımda IIS ayarlarının geri döndüğünü ve görevleri tekrar yapmam gerektiğini belirtmeliyim.
Homa Pourmohammadi
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.