Visual Studio veya Visual Web Developer kullanarak SQL Server Compact ile ASP.NET Web Uygulaması Dağıtma: Sorun Giderme (12/12)

tarafından Tom Dykstra

Başlangıç Projelerini İndir

Bu öğretici serisi, Visual Studio 2012 RC veya web için Visual Studio Express 2012 RC kullanarak SQL Server Compact veritabanı içeren bir ASP.NET web uygulaması projesi dağıtmayı (yayımlamayı) gösterir. Web Yayımlama Güncelleştirmesi'ni yüklerseniz Visual Studio 2010'u da kullanabilirsiniz. Seriye giriş için serideki ilk öğreticiye bakın.

Visual Studio 2012'nin RC sürümünden sonra sunulan dağıtım özelliklerini gösteren, SQL Server Compact dışındaki SQL Server sürümleri dağıtmayı ve Windows Azure Web Sitelerine dağıtmayı gösteren bir öğretici için bkz. Visual Studio kullanarak Web Dağıtımı ASP.NET.

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.

'/' 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 modu kapatın customErrors , uygulamayı yeniden dağıtın ve uygulamayı yeniden çalıştırın:

  1. Uygulama Web.config dosyasının system.web öğesinde bir customErrors öğesi varsa özniteliğini mode "kapalı" olarak değiştirin. Aksi takdirde, aşağıdaki örnekte gösterildiği gibi özniteliği "kapalı" olarak ayarlanmış öğeye bir customErrors öğe system.webmode 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ı geri yükleyin ve uygulamayı yeniden dağıtın.

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:

Access is denied. (Exception from HRESULT: 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:

An error occurred when reading the IIS Configuration File 'MACHINE/REDIRECTION'. 
The identity performing this operation was ... Error: Cannot read configuration file due to insufficient permissions.

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:

The default .NET 4.0 application pool does not exist or the application could not be added. 
Please verify that ASP.NET 4.0 is installed on this machine.

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 Bkz. Test Ortamı Olarak IIS'ye Dağıtma öğreticisi.

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:

Format of the initialization string does not conform to specification starting at index 0.

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 öğesine aşağıdaki özelliği PropertyGroup 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 Error 500 - Internal Server Error.

Olası Neden ve Çözüm

500 hatanın birçok nedeni vardır, ancak bu öğreticileri izliyorsanız olası nedenlerden biri XML dönüştürme dosyalarından birinde xml öğesini yanlış yere yerleştirmenizdir. Örneğin, doğrudan altına <configuration>yerine öğesine öğe <location><system.web> ekleyen dönüştürmeyi yerleştirirseniz bu hatayı alırsınız. Bu durumda çözüm, XML dönüştürme dosyasını düzeltmek ve yeniden dağıtmaktır.

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 Error 500.21 - Internal Server Error. 
Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list.

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 Bkz. Test Ortamı Olarak IIS'ye Dağıtma öğreticisi.

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: Cannot open database "DatabaseName" requested by the login. The login failed.

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:

Model compatibility cannot be checked because the database does not contain model metadata. 
Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions.

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 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_datawriterve db_ddladmin rollerini atayabilirdb_datareader. Bunlar veritabanı nesnelerinin çoğunu 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ının dışında tutarak yapmaktır. Bunu yapmak için veritabanının PreSource otomatik olarak oluşturulan betiğinin öğesini düzenleyerek, aşağıdaki öznitelikleri içermesini sağlayabilirsiniz:

CopyAllUsers=false, CopyAllRoles=false

Proje dosyasındaki 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 betiklerini 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ıyla 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ına rağmen yine de bu hatayı alacak şekilde yapılandırdıysanız, olası bir geçici çözüm betikleri ayrı ayrı ç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 geri 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

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

Error: The stream data of 'sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' is not yet available.

Olası Neden ve Çözüm

Hata iletisi, komutun bir test raporu oluşturamadığı anlamına gelir. Bununla birlikte, (gerçek yükleme) seçeneğini kullanırsanız y komut çalıştırılabilir. İleti yalnızca komutun test modunda çalıştırılmasıyla 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:

Hata: 'sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' akış verileri henüz kullanılamıyor. 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, bilgisayara ASP.NET 4 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:

Unable to cast object of type 'Microsoft.Web.Deployment.DeploymentProviderOptions' to 'Microsoft.Web.Deployment.DeploymentProviderOptions'.

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 yeniden başlamak için IIS Yöneticisi'ni kapatın ve komut istemine girerek inetmgr /reset 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:

Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8482. 
Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.

Olası Neden ve Çözüm

Dağıtılan sitede, uygulamanın bin klasörünün 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 bkz. SQL Server Compact dağıtma öğreticisi.

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 Code First Migrations yapılandırmış olmanız gerekir. Uygulamayı çalıştırdığınızda aşağıdaki örneğe benzer bir hata iletisi alırsınız:

The path is not valid. Check the directory for the database. [Path = 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 Proje Özellikleri penceresinin Paketle/Yayımla Web sekmesinde App_Data Dışla'yı seçtiniz. Sunucuya kopyalanacak klasörde dosya yoksa dağıtım işlemi sunucuda bir klasör oluşturmaz. Veritabanında zaten ayarlanmış bir veritabanınız varsa, yayımlama profilinde Hedefte ek dosyaları kaldır'ı seçtiyseniz dağıtım işlemi dosyaları ve App_Data klasörünün kendisini siler. Sorunu çözmek için App_Data klasörüne .txt dosyası gibi bir yer tutucu dosya yerleştirin, Dışla App_Data seçmediğinizden 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 deployment task failed. (Could not complete the request to remote agent URL 'https://serverurl.com/msdeploy.axd?site=sitename'.)
Could not complete the request to remote agent URL 'https://url/msdeploy.axd?site=sitename'.
The request was aborted: The request was canceled.
COM object that has been separated from its underlying RCW cannot be used.

Olası Neden ve Çözüm

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

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 ve ayarlanması gerekmediğini biliyorsanız, yayımlama profili dosyasına (tek bir profili etkilemek için) veya wpp.targets dosyasına (tüm profilleri etkilemek için) IncludeSetACLProviderOn Hedef>False</IncludeSetACLProviderOnDestination> ekleyerek< bu davranışı devre dışı bırakabilirsiniz. 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 gösterir çü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, Klasör İzinlerini Ayarlama ve Üretim Ortamına Dağıtma öğreticilerinde gösterildiği gibi bu klasör için izinleri ayarlayabilirsiniz. Uygulamanızın sitenin kök klasörüne yazma erişimi gerekiyorsa, yayımlama profili dosyasına (tek bir profili etkilemek için) veya wpp.targets dosyasına (tüm profilleri etkilemek için) IncludeSetACLProviderOn Target>False</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 ( customErrors mod Web.config dosyasında "kapalı" olarak ayarlandığında) aşağıdaki hatayı alıyorsunuz:

The 'targetFramework' attribute in the <compilation> element of the Web.config 
file is used only to target version 4.0 and later of the .NET Framework (for 
example, '<compilation targetFramework="4.0">'). The 'targetFramework' attribute 
currently references a version that is later than the installed version of the 
.NET Framework. Specify a valid target version of the .NET Framework, or install 
the required version of the .NET Framework.

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 desteklemiyor. ASP.NET 4.5 desteğinin ne zaman ve ne zaman eklenip 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, projenin daha sonraki çerçeve sürümünün derlemelerine başvuruları olmaya devam eder ve çalışmaz. Bu başvuruları el ile değiştirmeniz veya 4 veya önceki .NET Framework hedefleyen yeni bir proje oluşturmanız gerekir. Daha fazla bilgi için bkz. web siteleri için hedefleme .NET Framework.