Aracılığıyla paylaş


Visual Studio ile Web Dağıtımı sorunlarını giderme

Şunlar için geçerlidir: Internet Information Services

Bu makale, Visual Studio'dan Web Dağıtımı aracılığıyla doğru yapılandırılmamış bir sunucuya yayımlamaya çalışırken oluşan bir dizi hatayı gidermenize yardımcı olur. Makale belirli ürün sürümleri için yazılmış olsa da, kavramlar daha yeni sürümlere de uygulanabilir.

Aşağıdaki ekran görüntülerini ve hataları toplamak için Visual Studio'da yeni bir ASP.NET MVC projesi kullanın. Hedef sunucu, Internet Information Services (IIS) ile Windows Server'ın temiz bir yüklemesiydi. Başka bir yapılandırma yapılmadı.

Sunucuya bağlanılamıyor

Karşılaşma olasılığınız olan ilk hata, Visual Studio'nun çıkış penceresinde aşağıdaki ekran görüntüsüne benzer. Geliştirilmiş okunabilirlik için, iletinin tam metni ekran görüntüsü altında sağlanır:

Visual Studio'da Hata Listesi çıkışını gösteren ekran görüntüsü.

Web deployment task failed.(Could not connect to the destination computer ("deployserver").On the destination computer, make sure that Web Deploy is installed and that the required process("The Web Management Service") is started.)
This error indicates that you cannot connect to the server. Make sure the service URL is correct,firewall and network settings on this computer and on the server computer are configured properly,and the appropriate services have been started on the server.
Error details:
Could not connect to the destination computer ("deployserver"). On the destination computer,
make sure that Web Deploy is installed and that the required process
("The Web Management Service") is started.
Unable to connect to the remote server
A connection attempt failed because the connected party did not properly respond after a period
of time, or established connection failed because connected host has failed to respond 192.168.0.211:8172

Bu hatada vurgulanan metin (ve aşağıdaki bölümlerdeki diğer hatalar) sorunun doğasını anlamanın anahtarıdır. Web Dağıtımı sunucudan yanıt alamadığından Visual Studio çeşitli olası nedenleri ayırt edemedi. Sonuç olarak, deneyebileceğiniz öğelerin listesini verir.

Web yönetim hizmeti yüklü mü?

IIS sunucusunda Internet Information Services (IIS) Yöneticisi'ni açın ve makine adı düğümünü seçin. Özellikler görünümünde, ekranı aşağı kaydırarak Yönetim bölümüne gelin ve şu simgeleri arayın:

IIS Yöneticisi İzinleri simgesini, IIS Yöneticisi Kullanıcıları simgesini ve Yönetim Hizmeti simgesini gösteren ekran görüntüsü.

Bunlar yoksa, Rol Hizmetleri Ekle iletişim kutusu aracılığıyla Yönetim Hizmeti'ni yüklemeniz gerekir. Ürünler sekmesinden Web Platformu Yükleyicisi aracılığıyla da yüklenebilir. Sol sütunda Sunucu'ya tıklayın ve IIS: Yönetim Hizmeti'ni seçin.

Not

Yönetim Hizmeti'ni yükledikten sonra, otomatik olarak başlatılmadığından hizmeti başlatmanız gerekir. Bunu yapmak için Yönetim Hizmeti simgesine çift tıklayın. Yönetim Hizmeti bölmesi görüntülendikten sonra sağ taraftaki Eylemler bölmesinde Başlat'ı seçin.

Hizmet URL'si doğru mu?

Varsayılan olarak, Web Yönetimi Hizmeti 8172 numaralı bağlantı noktasını dinler, ancak bu ayar değiştirilebilir. Hangi bağlantı noktasının kullanıldığını denetlemenin en kolay yolu, daha önce açıklandığı gibi Yönetim Hizmeti bölmesini açmak ve Bağlantılar bölümündeki IP ve bağlantı noktası bilgilerine bakmaktır. Bağlantı noktası 8172 dışında bir şeyle değiştirildiyse, yeni bağlantı noktasına güvenlik duvarı üzerinden izin verildiğinden emin olmanız ve Visual Studio'nun yayımlama ayarlarındaki hizmet URL'sini yeni bağlantı noktasını kullanacak şekilde güncelleştirmeniz gerekir.

(403) Yasak

Web Yönetim Hizmeti yüklendikten sonra Visual Studio aşağıdaki hatayı gösterebilir:

Visual Studio'da Hata Listesi ekranını gösteren ekran görüntüsü.

Web deployment task failed.(Could not connect to the destination computer ("deployserver") using
the specified process ("The Web Management Service") because the server did not respond.
Make sure that the process ("The Web Management Service") is started on the destination computer.)
Could not connect to the destination computer ("deployserver") using the specified process
("The Web Management Service") because the server did not respond. Make sure that the process
("The Web Management Service") is started on the destination computer.
The remote server returned an error: (403) Forbidden.

Bu ileti yanıltıcı. Sunucunun yanıt vermediğini belirtir, ancak 403 hatası Web Dağıtımı'nın sunucuyla iletişim kurabileceğini, ancak isteğin etkin olarak reddedildiğini gösterir. Web Yönetim Hizmeti'nin HTTP günlüğü, isteğin sunucuya ulaştığını onaylamaya yardımcı olabilir ve başarısız olan gerçek istekle ilgili ayrıntıları sağlayabilir. Bu günlük varsayılan olarak konumunda %SystemDrive%\Inetpub\logs\WMSvc bulunabilir. Diğer IIS günlükleri gibi veriler de hemen günlüğe yazılmıyor, bu nedenle isteği görmek için birkaç dakika beklemeniz veya günlüğü temizlemek için Web Yönetim Hizmeti'ni yeniden başlatmanız gerekebilir.

Günlükte WMSVC aşağıdaki iletiyi görebilirsiniz:

2011-06-02 17:59:05 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 403 6 5 1669

6 günlükteki öğesinin 403 ardından alt durum kodudur ve IP adresinin reddedildiği anlamına gelir. IIS için durum ve alt durum kodlarının tam listesi IIS'deki HTTP durum kodlarında bulunabilir.

Yönetim Hizmeti uzak bağlantılara izin verecek şekilde yapılandırılmış mı?

403.6 yanıtının en olası nedeni budur. Yönetim Hizmeti simgesine çift tıklayın ve Uzak Bağlantıları Etkinleştir seçeneğinin işaretli olduğunu doğrulayın. Değişiklik yapmak için hizmeti durdurmanız gerekir, bu nedenle işiniz bittiğinde hizmeti yeniden başlattığınızdan emin olun.

Yönetim Hizmeti iletişim kutusunu gösteren ekran görüntüsü.

Web yönetimi hizmetine Windows Güvenlik Duvarı üzerinden izin verildi mi?

Web Yönetim Hizmeti'ni sunucuya yüklediğinizde, bir gelen güvenlik duvarı kuralı Web Yönetim Hizmeti (HTTP Trafiği) olarak adlandırılır. Gelişmiş Güvenlik özellikli Yönetimsel Araçları>Başlat>Windows Güvenlik Duvarı'na giderek bu kuralın etkinleştirildiğini doğrulayın. Gelen Kuralları'nıseçin ve listede Web Yönetimi kuralını bulun. Tüm profiller için etkinleştirilmelidir.

Üçüncü taraf güvenlik duvarı kullanıyorsanız 8172 numaralı bağlantı noktasında gelen bağlantılara izin verildiğinden emin olmanız gerekir.

Yönetim Hizmeti için IP kısıtlamaları yapılandırıldı mı?

403 hatası alabiliyor olmanın diğer yaygın nedeni, yönetim hizmetinin istemcinin IP'sini reddedecek şekilde yapılandırılmış olmasıdır. Varsayılan olarak, uzak bağlantılara izin verildiğinde tüm IP'lere izin verecek şekilde yapılandırılır. Yönetim Hizmeti simgesine çift tıklayarak IP kısıtlamalarını denetleyebilirsiniz. Tüm yapılandırılmış IP kısıtlama kuralları, sayfanın en altında, IPv4 Adres Kısıtlamaları'nda yer alır.

(404) Bulunamadı

Visual Studio'da Hata Listesi sayfasını gösteren ekran görüntüsü. Hata Ayrıntıları odakta.

Web deployment task failed.(Could not connect to the destination computer ("deployserver").
On the destination computer, make sure that Web Deploy is installed and that the required process
("The Web Management Service") is started.
The requested resource does not exist, or the requested URL is incorrect.
Error details: Could not connect to the destination computer ("deployserver").
On the destination computer, make sure that Web Deploy is installed and that the required process
("The Web Management Service") is started.
The remote server returned an error: (404) Not Found.

404 hatası, Web Dağıtımı'nın sunucudaki Web Yönetim Hizmeti'ne başvurduğunu ancak gerekenleri bulamadığını gösterir. Yapılacak ilk şey, Web Dağıtımı'nın bağlanmaya çalıştığı kaynağı onaylamaktır. Hedef sunucuda %SystemDrive%\Inetpub\logs\WMSvc altındaki Web Yönetimi Hizmeti günlüğüne bakarsanız, günlükte WMSVC aşağıdakine benzer bir girdi görürsünüz:

2011-05-12 15:21:50 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 404 7 0 1606

Msdeploy.axd , Web Dağıtımı isteklerinin işleyicisidir.

Web Dağıtımı yüklü mü?

Programlar ve Özellikler denetim masasına gidip yüklü programlar listesinde Microsoft Web Dağıtımı 4.0'ı arayarak Web Dağıtımı'nın yüklendiğini doğrulayabilirsiniz. Orada değilse resmi indirme sayfasından indirip yükleyebilirsiniz. Ayrıca Web Dağıtım Aracısı Hizmeti'nin (MsDepSvc) çalıştığından da emin olmalısınız.

Web dağıtım işleyicisi yüklü mü?

Web Dağıtımı yüklüyse ve yine de bu hatayı alırsanız, Web Dağıtımı'ndaki IIS Dağıtım İşleyicisi özelliğinin yüklü olduğundan emin olun. Programlar ve Özellikler denetim masasında Microsoft Web Deploy 4.0'ı bulun, sağ tıklayın ve Değiştir'i seçin. Açılan sihirbazda, ilk sayfada İleri'yi ve ardından ikinci sayfada Değiştir'i seçin. IIS Dağıtım İşleyicisi ve altındaki her şeyi ekleyin.

Microsoft Web Dağıtımı 4 nokta 0 Kurulum iletişim kutusunu gösteren ekran görüntüsü. Web Dağıtımı Çerçevesi vurgulanır.

Sihirbazı tamamlamak için İleri'yi seçin. Bu değişikliği yaptıktan sonra web yönetimi hizmetini yeniden başlatmanız gerekir.

(401) Yetkisiz

Web Dağıtımı ve Web Yönetim Hizmeti doğru yapılandırıldıktan sonra, kullanıcıların içeriği güncelleştirmesine izin vermek için temsilci kuralları ayarlamanız gerekir. İzin sorunları için Visual Studio'da görebileceğiniz birkaç farklı hata vardır. Örneğin:

Visual Studio'da izin sorunu hatalarını görüntüleyen Hata Listesi'ni gösteren ekran görüntüsü.

Web deployment task failed.(Connected to the destination computer ("deployserver")
using the Web Management Service, but could not authorize.
Make sure that you are using the correct user name and password, that the site you are connecting
to exists, and that the credentials represent a user who has permissions to access the site.
Make sure the site name, user name, and password are correct. If the issue is not resolved,
please contact your local or server administrator.
Error details:
Connected to the destination computer ("deployserver") using the Web Management Service,
but could not authorize. Make sure that you are using the correct user name and password,
that the site you are connecting to exists, and that the credentials represent a user who
has permissions to access the site.
The remote server returned an error: (401) Unauthorized.

WMSvc günlüğünde aşağıdaki iletiyi görebilirsiniz:

2011-05-12 15:50:12 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 401 2 5 1653
2011-05-12 15:50:12 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 user1 192.168.0.203 - 401 1 1326 124

Visual Studio çıkışında vurgulanan http durumu, Erişim Reddedildi hatasıdır. Hata günlüğünde vurgulanan Win32 durumu "Oturum açma hatası: bilinmeyen kullanıcı adı veya hatalı parola" olarak eşlendiğinden, bu hata basit bir oturum açma hatasıdır. Kullanıcının kimliği doğrulanmışsa ancak yayımlamak için gereken haklara sahip değilse, günlük girdisi aşağıdaki gibi görünür:

2011-05-12 15:55:38 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 401 2 5 0

Bu kullanıcının yayımlamasına izin vermek için, Web Dağıtım İşleyicisini Yapılandırma başlığındaki yönergelere göre temsilci seçmeyi ayarlamanız gerekir.

İşlem yetkilendirilmedi

Hesap oturum açabiliyorsa ancak içeriği yayımlamak için gereken haklara sahip değilse aşağıdaki hata iletisini görürsünüz:

Kullanıcı izinleriyle ilgili bir hatanın görüntülendiği Visual Studio'daki Hata Listesi sayfasını gösteren ekran görüntüsü.

Web deployment task failed. (Unable to perform the operation ("Create Directory")  for the specified
directory ("bin"). This can occur if the server administrator has not authorized this operation for
the user credentials you are using.

Günlükte WMSvc bu istekler için HTTP 200 yanıtları gösterilir. Neyse ki, Web Dağıtımı 2.1 bilgileri Microsoft Web Dağıtımı hizmet günlüğüne de yazar. Görüntülemek için Olay Görüntüleyicisi (Yerel)>Uygulamalar ve Hizmet Günlükleri>Microsoft Web Dağıtımı'na tıklayın.

Olay Görüntüleyicisi menüsünü gösteren ekran görüntüsü. Microsoft Web Dağıtımı vurgulanmış.

Bu özel hata için, olay günlüğü ek ayrıntılar içeriyor (kısa süre için kesilmiş):

User: DEPLOYSERVER\User1
Client IP: 192.168.0.203
Content-Type: application/msdeploy
Version: 8.0.0.0
MSDeploy.VersionMin: 7.1.600.0
MSDeploy.VersionMax: 7.1.1070.1
MSDeploy.Method: Sync
MSDeploy.RequestId: 50de0746-f10d-4640-9b3d-4ba773520e38
MSDeploy.RequestCulture: en-US
MSDeploy.RequestUICulture: en-US
Skip: objectName="^configProtectedData$"
Provider: auto, Path: 
Tracing deployment agent exception. Request ID '50de0746-f10d-4640-9b3d-4ba773520e38'. Request Timestamp: '5/12/2011 9:18:12 AM'. Error Details:
Microsoft.Web.Deployment.DeploymentDetailedUnauthorizedAccessException: Unable to perform the operation ("Create Directory")
for the specified directory ("C:\inetpub\wwwroot\bin"). This can occur if the server administrator has not authorized this
operation for the user credentials you are using.
---> Microsoft.Web.Deployment.DeploymentException: The error code was 0x80070005. ---> System.UnauthorizedAccessException:
Access to the path 'C:\inetpub\wwwroot\bin' is denied.
   at Microsoft.Web.Deployment.Win32Native.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode, String maybeFullPath)
   at Microsoft.Web.Deployment.DirectoryEx.CreateDirectory(String path)
   at Microsoft.Web.Deployment.DirPathProvider.CreateDirectory(String fullPath, DeploymentObject source)
   at Microsoft.Web.Deployment.DirPathProvider.Add(DeploymentObject source, Boolean whatIf)
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---

Bu ileti, bu hata için izinlerin nerede verilmesi gerektiğini bildirir. Visual Studio'da aşağıdaki izinler hatasını da görebilirsiniz:

Visual Studio'da, odakta izin hatası olan Hata Listesi sayfasını gösteren ekran görüntüsü.

Web deployment task failed.((5/12/2011 11:31:41 AM) An error occurred when the request was processed on the remote computer.)

(5/12/2011 11:31:41 AM) An error occurred when the request was processed on the remote computer.
The server experienced an issue processing the request. Contact the server administrator for more information.

Bu hata size devam etmek için fazla bir şey vermez, ancak Olay Görüntüleyicisi Web Dağıtımı hata günlüğüne bakarsanız resim daha net hale gelir.

User: DEPLOYSERVER\User1
Client IP: 192.168.0.203
Content-Type: application/msdeploy
Version: 8.0.0.0
MSDeploy.VersionMin: 7.1.600.0
MSDeploy.VersionMax: 7.1.1070.1
MSDeploy.Method: Sync
MSDeploy.RequestId: 63b2f3d1-1817-444f-8280-9fa4f6f85d53
MSDeploy.RequestCulture: en-US
MSDeploy.RequestUICulture: en-US
Skip: objectName="^configProtectedData$"
Provider: auto, Path: 
Tracing deployment agent exception. Request ID '63b2f3d1-1817-444f-8280-9fa4f6f85d53'. Request Timestamp: '5/12/2011 9:31:41 AM'. Error Details:
System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
   at System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, String name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier owner, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl)
   at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext)
   at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections, Object exceptionContext)
   at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path)
   at Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, Boolean whatIf)
   at Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject source, DeploymentSyncContext syncContext)
   at Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)

Bu çıktıdan, güvenlik bilgilerini ayarlama haklarına sahip olmadığını görebiliriz User1 . Bu durumda, kullanıcının içerik üzerinde "Değiştirme izinleri" yoktur. İçeriğe "İzinleri Değiştir" izni verilmesi sorunu çözer.

Diğer

Başarıyla yayımladıktan sonra .NET 4.0 uygulamasına göz atamıyorsanız, .NET 4.0 IIS'ye doğru şekilde kaydedilmemiş olabilir. Diğer belirtiler .NET 4.0'ın yüklü olmasıdır, ancak IIS'de .NET 4.0 uygulama havuzları veya işleyici eşlemeleri yoktur. Bu belirti IIS yüklenmeden önce .NET 4.0 yüklendiğinde ortaya çıkar. Bu sorunu çözmek için yükseltilmiş bir komut istemi başlatın ve aşağıdaki komutu çalıştırın:

%systemdrive%\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -iru

Daha Fazla Bilgi