Aracılığıyla paylaş


Visual Studio kullanarak Web Dağıtımı ASP.NET: Sorun Giderme

tarafından Tom Dykstra

Başlangıç Projelerini İndir

Bu öğretici serisi, Visual Studio 2012 veya Visual Studio 2010 kullanarak bir ASP.NET web uygulamasını Azure App Service Web Apps veya üçüncü taraf barındırma sağlayıcısına dağıtmayı (yayımlamayı) gösterir. Seri hakkında bilgi için serideki ilk öğreticiye bakın.

Bu sayfada, Visual Studio kullanarak bir ASP.NET web uygulaması dağıttığınızda ortaya çıkabilecek bazı yaygın sorunlar açıklanmaktadır. Her biri için bir veya daha fazla olası neden ve ilgili çözümler sağlanır.

Gösterilen senaryolar hem Azure hem de üçüncü taraf barındırma sağlayıcıları için geçerlidir. Azure App Service web uygulamalarında sorun giderme hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın:

'/' Uygulamasında Sunucu Hatası - Geçerli Özel Hata Ayarları Hatanın Ayrıntılarının Uzaktan Görüntülenmesini Engelliyor

Senaryo

Bir siteyi uzak bir konağa dağıttıktan sonra, Web.config dosyasındaki customErrors ayarından bahseden ancak hatanın asıl nedenini belirtmeyen bir hata iletisi alırsınız:

Server Error in '/' Application.
Runtime Error 

Description: An application error occurred on the server. The current custom error settings 
for this application prevent the details of the application error from being viewed remotely 
(for security reasons). It could, however, be viewed by browsers running on the local server 
machine. 

Details: To enable the details of this specific error message to be viewable on remote machines,
please create a <customErrors> tag within a "web.config" configuration file located in the
root directory of the current web application. This <customErrors> tag should then have its
"mode" attribute set to "Off".

Olası Neden ve Çözüm

Varsayılan olarak, ASP.NET ayrıntılı hata bilgilerini yalnızca web uygulamanız yerel bilgisayarda çalışırken gösterir. Genellikle web uygulamanız İnternet üzerinden genel kullanıma açık olduğunda ayrıntılı hata bilgilerini görüntülemek istemezsiniz çünkü bilgisayar korsanları bu bilgileri uygulamadaki güvenlik açıklarını bulmak için kullanabilir. Ancak, bir siteyi veya bir siteye güncelleştirmeleri dağıtırken bazen bir sorun oluşur ve gerçek hata iletisini almanız gerekir.

Uygulamanın uzak konakta çalışırken ayrıntılı hata iletileri görüntülemesini sağlamak için Web.config dosyasını düzenleyerek customErrors modunu kapatın, uygulamayı yeniden dağıtın ve uygulamayı yeniden çalıştırın:

  1. Uygulama Web.config dosyasında system.web öğesinde customErrors öğesi varsa mode özniteliğini "off" olarak değiştirin. Aksi takdirde, aşağıdaki örnekte gösterildiği gibi mode özniteliği "off" olarak ayarlanmış system.web öğesine customErrors öğesi ekleyin:

    <configuration>
      <system.web>
        <customErrors mode="off"/>
      </system.web>
    </configuration>
    
  2. Uygulamayı dağıtın.

  3. Uygulamayı çalıştırın ve hatanın oluşmasına neden olan işlemi daha önce yineleyin. Artık gerçek hata iletisinin ne olduğunu görebilirsiniz.

  4. Hatayı çözdüğünüzde özgün customErrors ayarını geri yükleyin ve uygulamayı yeniden dağıtın.

Bu dosya zaten mevcut olduğunda 'ContosoUniversity' gölge kopyası oluşturulamıyor.

Senaryo

Visual Studio'da bir proje çalıştırmayı denediğinizde, aşağıdaki örneğe benzer bir ileti içeren bir hata sayfası alırsınız:

'/' Uygulamasında Sunucu Hatası. Bu dosya zaten mevcut olduğunda 'ContosoUniversity' gölge kopyası oluşturulamıyor.

Olası Neden ve Çözüm

Bir dakika bekleyin ve tarayıcıyı yenileyin veya siteyi yeniden derleyip yeniden çalıştırmayı deneyin.

SQL Server Compact Kullanan Bir Web Sayfasında Erişim Reddedildi

Senaryo

SQL Server Compact kullanan bir site dağıttığınızda ve dağıtılan sitede veritabanına erişen bir sayfa çalıştırdığınızda aşağıdaki hata iletisini görürsünüz:

Erişim reddedildi. (HRESULT özel durum döndürdü: 0x80070005 (E_ACCESSDENIED))

Olası Neden ve Çözüm

Sunucudaki AĞ HİzMETİ hesabının bin\amd64 veya bin\x86 klasöründeki SQL Service Compact yerel ikili dosyalarını okuyabilmesi gerekir, ancak bu klasörler için okuma izinleri yoktur. İzinleri alt klasörlere genişleterek , bölme klasöründe AĞ HİzMETİ için okuma izni ayarlayın.

Yetersiz İzinler Nedeniyle Yapılandırma Dosyası Okunamıyor

Senaryo

Yerel makinenizde IIS'ye bir uygulama dağıtmak için Visual Studio yayımla düğmesine tıkladığınızda yayımlama başarısız olur ve Çıkış penceresinde şuna benzer bir hata iletisi gösterilir:

'MACHINE/REDIRECTION' IIS Yapılandırma Dosyası okunurken bir hata oluştu. Bu işlemi gerçekleştiren kimlik ... Hata: Yetersiz izinler nedeniyle yapılandırma dosyası okunamıyor.

Olası Neden ve Çözüm

Yerel makinenizde IIS'de tek tıklamayla yayımla özelliğini kullanmak için Visual Studio'yu yönetici izinleriyle çalıştırıyor olmanız gerekir. Visual Studio'yu kapatın ve yönetici izinleriyle yeniden başlatın.

Hedef Bilgisayara Bağlanılamadı ... Belirtilen İşlemi Kullanma

Senaryo

Bir uygulamayı dağıtmak için Visual Studio yayımla düğmesine tıkladığınızda yayımlama başarısız olur ve Çıkış penceresinde şuna benzer bir hata iletisi gösterilir:

Web deployment task failed.(Could not connect to the destination computer ("<server URL>") using the specified process
("The Web Management Service"). This can happen if a proxy server is interrupting communication with the destination server. 
Disable the proxy server and try again.) ... The remote server returned an error: (502) Bad Gateway.

Olası Neden ve Çözüm

Proxy sunucusu hedef sunucuyla iletişimi kesiyor. Windows Denetim Masası veya Internet Explorer'da İnternet Seçenekleri'ni ve ardından Bağlantılar sekmesini seçin. İnternet Özellikleri iletişim kutusunda LAN Ayarları'na tıklayın. Yerel Ağ (LAN) Ayarları iletişim kutusunda Ayarları otomatik olarak algıla onay kutusunu temizleyin. Ardından yayımla düğmesine yeniden tıklayın.

Sorun devam ederse, ara sunucu veya güvenlik duvarı ayarlarıyla neler yapılıp yapılamadığını belirlemek için sistem yöneticinize başvurun. Sorun, Web Dağıtımı'nın Web Yönetim Hizmeti dağıtımı (8172) için standart olmayan bir bağlantı noktası kullanması nedeniyle oluşur; Diğer bağlantılar için Web Dağıtımı 80 numaralı bağlantı noktasını kullanır. Bir üçüncü taraf barındırma sağlayıcısına dağıtım yaparken genellikle Web Yönetim Hizmeti'ni kullanıyorsunuz.

Varsayılan .NET 4.0 Uygulama Havuzu Yok

Senaryo

.NET Framework 4 gerektiren bir uygulama dağıttığınızda aşağıdaki hata iletisini görürsünüz:

Varsayılan .NET 4.0 uygulama havuzu yok veya uygulama eklenemedi. Lütfen bu makinede ASP.NET 4.0'ın yüklü olduğunu doğrulayın.

Olası Neden ve Çözüm

ASP.NET 4, IIS'de yüklü değil. Dağıttığınız sunucu geliştirme bilgisayarınızsa ve üzerinde Visual Studio 2010 yüklüyse, ASP.NET 4 bilgisayarda yüklüdür ancak IIS'de yüklü olmayabilir. Dağıttığınız sunucuda, yükseltilmiş bir komut istemi açın ve aşağıdaki komutları çalıştırarak IIS'de ASP.NET 4'ü yükleyin:

cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –iru

Varsayılan uygulama havuzunun .NET Framework sürümünü de el ile ayarlamanız gerekebilir. Daha fazla bilgi için bu serideki Test Ortamı olarak IIS'ye Dağıtma öğreticisine bakın.

Başlatma dizesinin biçimi, dizin 0'dan başlayarak belirtime uymuyor.

Senaryo

Tek tıklamayla yayımla kullanarak bir uygulamayı dağıttığınızda, veritabanına erişen bir sayfayı çalıştırdığınızda aşağıdaki hata iletisini alırsınız:

Başlatma dizesinin biçimi, dizin 0'dan başlayarak belirtime uymuyor.

Olası Neden ve Çözüm

Dağıtılan sitede Web.config dosyasını açın ve bağlantı dizesi değerlerinin aşağıdaki örnekte olduğu gibi ile $(ReplaceableToken_başlayıp başlamadığını denetleyin:

<connectionStrings>
  <add name="DefaultConnection" connectionString="$(ReplaceableToken_DefaultConnection-Web.config Connection String_0)" providerName="System.Data.SqlServerCe.4.0" />
  <add name="SchoolContext" connectionString="$(ReplaceableToken_SchoolContext-Web.config Connection String_0)" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>

Bağlantı dizeleri bu örneğe benzerse, proje dosyasını düzenleyin ve tüm derleme yapılandırmaları için olan PropertyGroup öğesine aşağıdaki özelliği ekleyin:

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>

Ardından uygulamayı yeniden dağıtın.

HTTP 500 İç Sunucu Hatası

Senaryo

Dağıtılan siteyi çalıştırdığınızda, hatanın nedenini belirten belirli bilgiler olmadan aşağıdaki hata iletisini görürsünüz:

HTTP Hatası 500 - İç Sunucu Hatası.

Olası Neden ve Çözüm

500 hatanın birçok nedeni vardır, ancak bu öğreticileri izliyorsanız olası nedenlerden biri, xml öğesini Web.config dönüştürme dosyalarından birinde yanlış yere yerleştirmenizdir. Örneğin, bir konum> öğesi ekleyen dönüştürmeyi doğrudan <yapılandırmanın> altına yerleştirmek yerine system.web> altına yerleştirirseniz <bu hatayı alırsınız<. Dönüştürmelerin istendiği gibi çalıştığını doğrulamak için Web.config dönüştürme önizleme özelliğini kullanabilirsiniz. Yanlış kodlanmış bir dönüşüm bulursanız çözüm, dönüştürme dosyasını düzeltmek ve yeniden dağıtmaktır. Bir hata belirgin değilse, 500 hatasına hangisinin neden olduğunu görmek için dönüşümleri açıklama satırı yapmayı ve yeniden dağıtmayı deneyin.

HTTP 500.21 İç Sunucu Hatası

Senaryo

Dağıtılan siteyi çalıştırdığınızda aşağıdaki hata iletisini görürsünüz:

HTTP Hatası 500.21 - İç Sunucu Hatası. "PageHandlerFactory-Integrated" işleyicisi, modül listesinde hatalı bir "ManagedPipelineHandler" modülüne sahip.

Olası Neden ve Çözüm

Dağıtmış olduğunuz site 4 ASP.NET, ancak ASP.NET 4 sunucudaki IIS'ye kaydedilmemiş. Sunucuda yükseltilmiş bir komut istemi açın ve aşağıdaki komutları çalıştırarak ASP.NET 4'e kaydedin:

cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –iru

Varsayılan uygulama havuzunun .NET Framework sürümünü de el ile ayarlamanız gerekebilir. Daha fazla bilgi için bu serideki Test Ortamı olarak IIS'ye Dağıtma öğreticisine bakın.

oturum açma başarısız SQL Server Express veritabanı App_Data

Senaryo

Web.config dosya bağlantı dizesini, App_Data klasörünüzde bir SQL Server Express veritabanına .mdf dosyası olarak işaret etmek üzere güncelleştirmişsinizdir ve uygulamayı ilk kez çalıştırdığınızda aşağıdaki hata iletisini görürsünüz:

System.Data.SqlClient.SqlException: Oturum açma tarafından istenen "DatabaseName" veritabanı açılamıyor. Oturum açılamadı.

Olası Neden ve Çözüm

.mdf dosyasının adı, daha önce var olan veritabanının .mdf dosyasını silseniz bile bilgisayarınızda var olan herhangi bir SQL Server Express veritabanının adıyla eşleşemez. .mdf dosyasının adını veritabanı adı olarak hiç kullanılmamış bir adla değiştirin ve Web.config dosyasını yeni adı kullanacak şekilde değiştirin. Alternatif olarak, daha önce var olan SQL Server Express veritabanlarını silmek için SQL Server Management Studio Express'i kullanabilirsiniz.

Model Uyumluluğu denetlenemiyor

Senaryo

Web.config dosya bağlantı dizesini yeni bir SQL Server Express veritabanına işaret etmek üzere güncelleştirdiyseniz ve uygulamayı ilk kez çalıştırdığınızda aşağıdaki hata iletisini görürsünüz:

Veritabanı model meta verileri içermediğinden model uyumluluğu denetlenemiyor. IncludeMetadataConvention'ın DbModelBuilder kurallarına eklendiğinden emin olun.

Olası Neden ve Çözüm

Web.config dosyasına eklediğiniz veritabanı adı daha önce bilgisayarınızda kullanılmışsa, içinde bazı tablolar bulunan bir veritabanı zaten var olabilir. Bilgisayarınızda daha önce kullanılmamış yeni bir ad seçin ve Web.config dosyasını bu yeni veritabanı adını kullanacak şekilde değiştirin. Alternatif olarak, mevcut veritabanını silmek için SQL Server Express Yardımcı Programı'nı veya SQL Server Management Studio Express'i kullanabilirsiniz.

Bir Betik Kullanıcı veya Rol Oluşturmaya Çalıştığında SQL Hatası

Senaryo

SQL'i Paketle/Yayımla sekmesinde yapılandırılan veritabanı dağıtımını kullanıyorsunuz, dağıtım sırasında çalışan SQL betikleri Kullanıcı Oluştur veya Rol Oluştur komutlarını içeriyor ve bu komutlar yürütülürken betik yürütme başarısız oluyor. Aşağıdakiler gibi daha ayrıntılı iletiler görebilirsiniz:

The approximate location of the error was between lines '1' and '3' of the script. 
The verbose log may have more information about the error. The command started with:
CREATE USER [user2] FOR LOGIN [user2] WITH DEFAULT
Error: User does not have permission to perform this action.

Veritabanı dağıtımını Sql'i Paketle/Yayımla sekmesi yerine Web'de Yayımla sihirbazında yapılandırdığınızda bu hata oluşursa Yapılandırma ve Dağıtım forumunda bir iş parçacığı oluşturun; çözüm bu sorun giderme sayfasına eklenir.

Olası Neden ve Çözüm

Dağıtım gerçekleştirmek için kullandığınız kullanıcı hesabının kullanıcı veya rol oluşturma izni yok. Örneğin, barındırma şirketi sizin için ayarlamış olduğu kullanıcı hesabına db_datareader, db_datawriter ve db_ddladmin rolleri atayabilir. Bunlar çoğu veritabanı nesnesini oluşturmak için yeterlidir, ancak kullanıcı veya rol oluşturmak için yeterli değildir. Hatadan kaçınmanın bir yolu, kullanıcıları ve rolleri veritabanı dağıtımından dışlamaktır. Veritabanının otomatik olarak oluşturulan betiği için PreSource öğesini düzenleyerek bunu yapabilirsiniz; böylece aşağıdaki öznitelikleri içerir:

CopyAllUsers=false, CopyAllRoles=false

Proje dosyasında PreSource öğesini düzenleme hakkında bilgi için bkz . Nasıl yapılır: Proje Dosyasında Dağıtım Ayarlarını Düzenleme. Geliştirme veritabanınızdaki kullanıcıların veya rollerin hedef veritabanında olması gerekiyorsa yardım için barındırma sağlayıcınıza başvurun.

Dağıtım Sırasında Özel Betikler Çalıştırılırken SQL Server Zaman Aşımı Hatası

Senaryo

Dağıtım sırasında çalıştırılacak özel SQL betikleri belirttiniz ve Web Dağıtımı bunları çalıştırdığında zaman aşımına uğradı.

Olası Neden ve Çözüm

Farklı işlem modlarını içeren birden çok betik çalıştırmak zaman aşımı hatalarını neden olabilir. Varsayılan olarak, otomatik olarak oluşturulan betikler bir işlemde çalıştırılır, ancak özel betikler çalışmaz. SQL'i Paketle/Yayımla sekmesinde mevcut bir veritabanından veri ve/veya şema çekme seçeneğini belirtirseniz ve özel bir SQL betiği eklerseniz, tüm betiklerin aynı işlem ayarlarını kullanması için bazı betiklerde işlem ayarlarını değiştirmeniz gerekir. Daha fazla bilgi için bkz . Nasıl yapılır: Web Uygulaması Projesi ile Veritabanı Dağıtma.

İşlem ayarlarını tümünün aynı olması için yapılandırdıysanız ancak yine de bu hatayı alırsanız, olası bir geçici çözüm betikleri ayrı olarak çalıştırmaktır. SQL'i Paketle/Yayımla sekmesindeki Veritabanı Betikleri kılavuzunda, zaman aşımı hatasına neden olan betiğin Ekle onay kutusunu temizleyin ve projeyi yayımlayın. Ardından Veritabanı Betikleri kılavuzuna dönün, bu betiğin Ekle onay kutusunu seçin ve diğer betikler için Ekle onay kutularını temizleyin. Ardından projeyi yeniden yayımlayın. Bu kez yayımladığınızda yalnızca seçili özel betik çalıştırılır.

Site Bildiriminin Akış Verileri Henüz Kullanılamıyor

Senaryo

t (test) seçeneğiyle deploy.cmd dosyasını kullanarak bir paket yüklerken aşağıdaki hata iletisini görürsünüz:

Hata: 'sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' akış verileri henüz kullanılamıyor.

Olası Neden ve Çözüm

Hata iletisi, komutun bir test raporu oluşturamayacağı anlamına gelir. Ancak, y (gerçek yükleme) seçeneğini kullanırsanız komut çalıştırılabilir. İleti yalnızca komutu test modunda çalıştırmayla ilgili bir sorun olduğunu gösterir.

Bu Uygulama ManagedRuntimeVersion v4.0 Gerektirir

Senaryo

Dağıtmayı denediğinizde aşağıdaki hata iletisini görürsünüz:

Kullanmaya çalıştığınız uygulama havuzunda 'managedRuntimeVersion' özelliği 'v2.0' olarak ayarlanmış. Bu uygulama için 'v4.0' gerekir.

Olası Neden ve Çözüm

ASP.NET 4, IIS'de yüklü değil. Dağıttığınız sunucu geliştirme bilgisayarınızsa ve üzerinde Visual Studio 2010 yüklüyse, ASP.NET 4 bilgisayarda yüklüdür ancak IIS'de yüklü olmayabilir. Dağıttığınız sunucuda, yükseltilmiş bir komut istemi açın ve aşağıdaki komutları çalıştırarak IIS'de ASP.NET 4'ü yükleyin:

cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –i

Microsoft.Web.Deployment.DeploymentProviderOptions yayınlanamadı

Senaryo

Bir paketi dağıtırken aşağıdaki hata iletisini görürsünüz:

'Microsoft.Web.Deployment.DeploymentProviderOptions' türünde bir nesne 'Microsoft.Web.Deployment.DeploymentProviderOptions' olarak değiştirilemiyor.

Olası Neden ve Çözüm

Web Dağıtımı 1.1 kullanıcı arabirimini kullanarak IIS Yöneticisi'nden Web Dağıtımı 2.0'ın yüklü olduğu bir sunucuya dağıtmaya çalışıyorsunuz. Paketi içeri aktararak dağıtmak için IIS Uzaktan Yönetim Aracı'nı kullanıyorsanız, bağlantıyı kurarken Kullanılabilir Yeni Özellikler iletişim kutusunu işaretleyin. (Bu iletişim kutusu, bağlantı ilk kurulduğunda yalnızca bir kez gösterilebilir. Bağlantıyı temizlemek ve baştan başlamak için IIS Yöneticisi'ni kapatın ve komut isteminde inetmgr /reset girerek yeniden başlatın.) Listelenen özelliklerden biri Web Dağıtımı kullanıcı arabirimiyse ve sürüm numarası 8'den düşükse, dağıttığınız sunucuda hem 1.1 hem de 2.0 Web Dağıtımı sürümleri yüklü olabilir. 2.0 yüklü bir istemciden dağıtmak için sunucuda yalnızca Web Dağıtımı 2.0 yüklü olmalıdır. Bu sorunu çözmek için barındırma sağlayıcınıza başvurmanız gerekir.

SQL Server Compact yerel bileşenleri yüklenemiyor

Senaryo

Dağıtılan siteyi çalıştırdığınızda aşağıdaki hata iletisini görürsünüz:

sürüm 8482'nin ADO.NET sağlayıcısına karşılık gelen SQL Server Compact yerel bileşenleri yüklenemiyor. doğru SQL Server Compact sürümünü yükleyin. Daha fazla ayrıntı için 974247 KB makalesine bakın.

Olası Neden ve Çözüm

Dağıtılan sitede, uygulamanın bin klasörü altında yerel derlemeleri olan amd64 ve x86 alt klasörleri yoktur. SQL Server Compact yüklü bir bilgisayarda, yerel derlemeler C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private konumunda bulunur. Visual Studio projesinde doğru dosyaları doğru klasörlere almanın en iyi yolu NuGet SqlServerCompact paketini yüklemektir. Paket yüklemesi, yerel derlemeleri amd64 ve x86'ya kopyalamak için derleme sonrası betiği ekler. Ancak bunların dağıtılabilmesi için bunları projeye el ile eklemeniz gerekir. Daha fazla bilgi için SQL Server Compact dağıtma öğreticisine bakın.

Entity Framework Code First uygulaması dağıtıldıktan sonra "Yol geçerli değil" hatası

Senaryo

veritabanını App_Data klasöründeki bir dosyada depolayan SQL Server Compact gibi Entity Framework Code First Migrations ve DBMS kullanan bir uygulama dağıtırsınız. İlk dağıtımınızdan sonra veritabanını oluşturmak için yapılandırılmış Code First Migrations. Uygulamayı çalıştırdığınızda aşağıdaki örneğe benzer bir hata iletisi alırsınız:

Yol geçerli değil. Veritabanının dizinini denetleyin. [Yol = c:\inetpub\wwwroot\App_Data\DatabaseName.sdf ]

Olası Neden ve Çözüm

Code First veritabanını oluşturmaya çalışırken App_Data klasörü yok. Dağıttığınızda App_Data klasöründe hiç dosyanız yoktu veya Project Özellikler penceresi'nin Paketle/Yayımla Web sekmesinde App_Data Dışla'yı seçtiniz. Sunucuda kopyalanacak klasörde dosya yoksa, dağıtım işlemi sunucuda klasör oluşturmaz. Veritabanında zaten ayarlanmışsa, yayımlama profilinde Hedefte ek dosyaları kaldır'ı seçtiyseniz dağıtım işlemi dosyaları ve App_Data klasörünü siler. Sorunu çözmek için App_Data klasörüne .txt dosyası gibi bir yer tutucu dosya yerleştirin, Dışla App_Data seçili olmadığından emin olun ve yeniden dağıtın.

"Temel alınan RCW'sinden ayrılmış COM nesnesi kullanılamaz."

Senaryo

Uygulamanızı dağıtmak için tek tıklamayla yayımlamayı başarıyla kullanıyorsunuz ve sonra şu hatayı almaya başlıyorsunuz:

Web dağıtım görevi başarısız oldu. (Uzak aracı URL'si '<https://serverurl.com/msdeploy.axd?site=sitename>' isteği tamamlanamadı.)
Uzak aracı URL'si ''<https://url/msdeploy.axd?site=sitename> isteği tamamlanamadı.
İstek durduruldu: İstek iptal edildi.
Temel alınan RCW'sinden ayrılmış COM nesnesi kullanılamaz.

Olası Neden ve Çözüm

Visual Studio'yu kapatmak ve yeniden başlatmak genellikle bu hatayı çözmek için gereken tek şey olur.

Yayımlama için Kullanılan Kullanıcı Kimlik Bilgilerinin SetACL Yetkilisi Olmadığından Dağıtım Başarısız Oluyor

Senaryo

Yayımlama, klasör izinlerini ayarlama yetkiniz olmadığını belirten bir hatayla başarısız oluyor (kullandığınız kullanıcı hesabının setACL yetkilisi yok).

Olası Neden ve Çözüm

Varsayılan olarak, Visual Studio sitenin kök klasöründe okuma izinlerini ve App_Data klasöründe yazma izinlerini ayarlar. Site klasörlerindeki varsayılan izinlerin doğru olduğunu biliyorsanız ve ayarlanması gerekmiyorsa, yayımlama profili dosyasına (tek bir profili etkilemek için) veya wpp.targets dosyasına (tüm profilleri etkilemek için) IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> ekleyerek< bu davranışı devre dışı bırakırsınız. Bu dosyaları düzenleme hakkında bilgi için bkz . Nasıl yapılır: Profil (.pubxml) Dosyalarında Dağıtım Ayarlarını Düzenleme.

Uygulama Bir Uygulama Klasörüne Yazmaya Çalıştığında Erişim Reddedildi Hataları

Senaryo

Uygulama klasörlerinin birinde dosya oluşturmaya veya düzenlemeye çalıştığında uygulamanız hata yapar, çünkü bu klasör için yazma yetkisi yoktur.

Olası Neden ve Çözüm

Varsayılan olarak, Visual Studio sitenin kök klasöründe okuma izinlerini ve App_Data klasöründe yazma izinlerini ayarlar. Uygulamanızın bir alt klasöre yazma erişimine ihtiyacı varsa, bu serideki Klasör İzinlerini Ayarlama ve Üretim Ortamına Dağıtma öğreticilerinde gösterildiği gibi bu klasörün izinlerini ayarlayabilirsiniz. Uygulamanızın sitenin kök klasörüne yazma erişimine ihtiyacı varsa, yayımlama profili dosyasına (tek bir profili etkilemek için) veya wpp.targets dosyasına (tüm profilleri etkilemek için) IncludeSetACLProviderOnDestination><> ekleyerek< kök klasörde salt okunur erişim ayarlamasını engellemeniz gerekir. Bu dosyaları düzenleme hakkında bilgi için bkz . Nasıl yapılır: Profil (.pubxml) Dosyalarında Dağıtım Ayarlarını Düzenleme.

Yapılandırma Hatası - targetFramework özniteliği, .NET Framework yüklü sürümünden sonraki bir sürüme başvuruyor

Senaryo

ASP.NET 4.5'i hedefleyen bir web projesini başarıyla yayımladınız, ancak uygulamayı çalıştırdığınızda (Web.config dosyasında customErrors modu "kapalı" olarak ayarlandığında) aşağıdaki hatayı alıyorsunuz:

Web.config dosyasının <derleme> öğesindeki 'targetFramework' özniteliği yalnızca .NET Framework 4.0 ve sonraki sürümleri hedeflemek için kullanılır (örneğin, '<compilation targetFramework="4.0"'>). 'targetFramework' özniteliği şu anda .NET Framework yüklü sürümünden sonraki bir sürüme başvuruyor. .NET Framework geçerli bir hedef sürümünü belirtin veya .NET Framework gerekli sürümünü yükleyin.

Hata sayfasının Kaynak Hata kutusu, hatanın nedeni olarak Web.config aşağıdaki satırı vurgular:

<compilation targetFramework="4.5" />

Olası Neden ve Çözüm

Sunucu ASP.NET 4.5'i desteklemez. ASP.NET 4.5 desteğinin ne zaman ve ne zaman eklenebileceğini belirlemek için barındırma sağlayıcısına başvurun. Sunucuyu yükseltmek bir seçenek değilse, bunun yerine 4 veya daha önceki ASP.NET hedefleyen bir web projesi dağıtmanız gerekir.

ASP.NET 4 veya önceki bir web projesini aynı hedefe dağıtırsanız, Web'i Yayımla sihirbazının Ayarlar sekmesindeki Hedefte ek dosyaları kaldır onay kutusunu seçin. Hedefte ek dosyaları kaldır'ı seçmezseniz Yapılandırma Hatası sayfasını almaya devam edersiniz.

Proje Özellikleri pencereleri bir Hedef çerçeve açılan listesi içerir, ancak bunu yalnızca .NET Framework 4.5'ten .NET Framework 4'e değiştirerek çözemezsiniz. Hedef çerçeveyi önceki bir çerçeve sürümüyle değiştirirseniz, proje daha sonraki çerçeve sürümünün derlemelerine başvurular yapmaya devam eder ve çalışmaz. Bu başvuruları el ile değiştirmeniz veya 4 veya daha önceki .NET Framework hedefleyen yeni bir proje oluşturmanız gerekir. Daha fazla bilgi için bkz. web siteleri için hedefleme .NET Framework.

Orta Güven Hataları

Senaryo

Uygulamanızı üretim ortamında çalıştırdığınızda orta güvenle ilgili bir hata alır.

Olası Neden ve Çözüm

Birçok üçüncü taraf barındırma sağlayıcısı, web sitenizi orta güven içinde çalıştırır, bu da bazı işlemlerin yapılmasına izin verilmediği anlamına gelir. Örneğin, uygulama kodu Windows kayıt defterine erişemez ve uygulamanızın klasör hiyerarşisinin dışındaki dosyaları okuyamaz veya yazamaz. Varsayılan olarak uygulamanız yerel bilgisayarınızda tam güven içinde çalışır; bu da uygulamanın üretim ortamına dağıttığınızda başarısız olacak işlemler gerçekleştirebileceği anlamına gelir.

Sorunu gidermek için uygulamayı yerel IIS ortamında orta güven içinde çalışacak şekilde yapılandırabilirsiniz. Bunu yapmak için, uygulamayı Web.config dosyasını açın ve bu örnekte gösterildiği gibi system.web öğesine bir güven öğesi ekleyin.

<configuration>
  <!-- Settings -->
  <system.web>
    <trust level="Medium" />
    <!-- Settings -->
  </system.web>
</configuration>

Uygulama artık yerel bilgisayarınızda bile IIS'de orta güven içinde çalışacaktır.

Azure orta güven gerektirmediğinden, Azure App Service dağıtıyorsanız bunu yapmayın. Bu öğretici Şubat 2012'de yazıldığı sırada, uygulamanızın orta güven içinde çalışmasını sağlamak için bu yöntemin kullanılması Azure'da hataya neden olacaktır.

Entity Framework Code First Migrations kullanıyorsanız ve uygulamanızı orta güven içinde çalıştıran bir barındırma sağlayıcısına dağıtıyorsanız, 5.0 veya sonraki bir sürümün yüklü olduğundan emin olun. Entity Framework sürüm 4.3'te, veritabanı şemasını güncelleştirmek için geçişler tam güven gerektirir.

HTTP 404.17 Bulunamadı Hatası

Senaryo

Dağıtılan siteyi IIS'deki geliştirme bilgisayarınızda çalıştırdığınızda, sunucunun Default.aspx'i işleyememe durumunu bildiren aşağıdaki hata iletisini görürsünüz:

HTTP Hatası 404.17 - Bulunamadı

İstenen içerik betik gibi görünüyor ve statik dosya işleyicisi tarafından sunulmayacak.

Olası Neden ve Çözüm

Bilgisayarınızda ASP.NET 4.5 yüklü olmayabilir. ASP.NET 4.5'in nasıl yükleneceğini açıklayan bu serideki Test Ortamı olarak IIS'ye Dağıtma öğreticisindeki adımlara bakın.