Visual Studio veya Visual Web Developer kullanarak SQL Server Compact bir ASP.NET Web uygulaması dağıtma: sorun giderme (12/12)

Tom Dykstra tarafından

Başlatıcı projesi indir

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ı projesini dağıtmayı (yayımlamayı) gösterir. Ayrıca, Web yayımlama güncelleştirmesini yüklerseniz Visual Studio 2010 de kullanabilirsiniz. Seriye giriş için, serideki ilk öğreticiyebakın.

Visual Studio 2012 RC yayımlandıktan sonra tanıtılan dağıtım özelliklerini gösteren bir öğretici için, SQL Server Compact dışındaki SQL Server sürümlerinin nasıl dağıtılacağını gösterir ve Windows Azure Web sitelerine nasıl dağıtılacağını gösterir. bkz. ASP.NET Web Deployment for Visual Studio.

Bu sayfada, Visual Studio kullanarak bir ASP.NET Web uygulaması dağıtırken ortaya çıkabilecek bazı yaygın sorunlar açıklanmaktadır. Her biri için bir veya daha fazla olası nedenler 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ını belirten bir hata iletisi alırsınız ancak hatanın gerçek nedeninin ne olduğunu göstermez:

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ı nedeni ve çözümü

Varsayılan olarak, ASP.NET, yalnızca Web uygulamanız yerel bilgisayarda çalışırken ayrıntılı hata bilgilerini gösterir. Genellikle, Web uygulamanız Internet üzerinden genel kullanıma sunulduğunda ayrıntılı hata bilgilerini göstermek istemezsiniz, çünkü saldırganlar uygulamada güvenlik açıklarını bulmak için bu bilgileri kullanabilir. Ancak, bir siteye bir site veya güncelleştirme dağıttığınızda, bazen bir şey yanlış olur 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 modu kapalı olarak ayarlayın, 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 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 öğesinde bir customErrors öğesi ekleyin:

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

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

  4. Hatayı çözümledikten sonra özgün customErrors ayarını 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 siteyi dağıtırken ve veritabanına erişen dağıtılmış sitede bir sayfa çalıştırdığınız zaman, aşağıdaki hata iletisini görürsünüz:

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

Olası nedeni ve çözümü

Sunucusundaki ağ HIZMETI hesabının, bin\amd64 veya BIN\X86 klasöründeki SQL SERVICE Compact Native ikililerini okuyabilmesi gerekir, ancak bu klasörler için okuma izinleri yoktur. Alt klasörlere izinleri genişletdiğinizden emin olmak için bin KLASÖRÜNDE ağ hizmeti için okuma izni ayarlayın.

Yetersiz Izinler nedeniyle yapılandırma dosyası okunamıyor

Senaryo

Yerel makinenizde IIS 'e bir uygulama dağıtmak için Visual Studio Publish düğmesine tıkladığınızda, yayımlama başarısız olur ve Çıkış penceresinde aşağıdakine 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ı nedeni ve çözümü

Yerel makinenizde IIS 'de tek tıklamayla yayımlama 'yı 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 Işlemi kullanma

Senaryo

Uygulamayı dağıtmak için Visual Studio Publish düğmesine tıkladığınızda yayımlama başarısız olur ve Çıkış penceresi şuna benzer bir hata iletisi gösterir:

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ı nedeni ve çözümü

Bir ara sunucu, hedef sunucuyla iletişimi kesintiye uğratma. Windows Denetim masasından veya Internet Explorer 'da Internet seçenekleri ' ni seçin ve Bağlantılar sekmesini seçin. Internet ö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ınla düğmesine tekrar tıklayın.

Sorun devam ederse, proxy veya güvenlik duvarı ayarları ile neler yapılabileceğini belirlemek için sistem yöneticinize başvurun. Web Dağıtımı, Web yönetimi hizmeti dağıtımı için standart olmayan bir bağlantı noktası kullandığından sorun oluşur (8172); 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önetimi hizmetini kullanıyorsunuz.

Varsayılan .NET 4,0 uygulama havuzu yok

Senaryo

.NET Framework 4 gerektiren bir uygulamayı dağıtırken 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ı nedeni ve çözümü

ASP.NET 4, IIS 'de yüklü değil. Dağıttığınız sunucu geliştirme Bilgisayarınız ise ve üzerinde Visual Studio 2010 yüklüyse, ASP.NET 4 bilgisayara yüklenir, ancak IIS 'de yüklenmemiş olabilir. 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 ' ü çalıştırın:

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

Ayrıca, varsayılan uygulama havuzunun .NET Framework sürümünü el ile ayarlamanız gerekebilir. Daha fazla bilgi için bkz. IIS 'e test ortamı olarak dağıtma öğreticisi.

Başlatma dizesinin biçimi, 0 dizininden başlayan belirtime uymuyor.

Senaryo

Tek tıklamayla yayımlama kullanarak bir uygulamayı dağıttıktan sonra, veritabanına erişen bir sayfa ç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ı nedeni ve çözümü

Dağıtılan sitede Web. config dosyasını açın ve aşağıdaki örnekte olduğu gibi bağlantı dizesi değerlerinin $(ReplaceableToken_ile başlayıp başlamamadığı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 benziyorsa, proje dosyasını düzenleyin ve aşağıdaki özelliği tüm derleme yapılandırmalarının PropertyGroup öğesine ekleyin:

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>

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

HTTP 500 Iç sunucu hatası

Senaryo

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

HTTP Error 500 - Internal Server Error.

Olası nedeni ve çözümü

500 hataların pek çok nedeni vardır, ancak bu öğreticilerden sonra bir XML öğesini XML dönüşüm dosyalarından birinde yanlış yere yerleştirmesiniz. Örneğin, doğrudan <configuration>altına değil <system.web> altına <location> öğesi ekleyen dönüştürmeyi yerleştirirseniz bu hatayı alırsınız. Bu durumda çözüm, XML dönüşüm dosyasını düzeltmek ve yeniden dağıtmak olur.

HTTP 500,21 Iç 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ı nedeni ve çözümü

Dağıttığınız site ASP.NET 4 hedefliyor, ancak ASP.NET 4, sunucuda IIS 'de kayıtlı değil. Sunucuda, yükseltilmiş bir komut istemi açın ve aşağıdaki komutları çalıştırarak ASP.NET 4 ' ü kaydedin:

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

Ayrıca, varsayılan uygulama havuzunun .NET Framework sürümünü el ile ayarlamanız gerekebilir. Daha fazla bilgi için bkz. IIS 'e test ortamı olarak dağıtma öğreticisi.

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

Senaryo

Web. config dosyası bağlantı dizesini, uygulama_veri klasörünüzdeki bir . mdf dosyası olarak bir SQL Server Express veritabanına işaret etmek üzere güncelleştirmiş 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ı nedeni ve çözümü

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

Model uyumluluğu denetlenemiyor

Senaryo

Web. config dosyası bağlantı dizesini yeni bir SQL Server Express veritabanına işaret etmek üzere güncelleştirmiş 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ı nedeni ve çözümü

Web. config dosyasına yerleştirdiğiniz veritabanı adı bilgisayarınızda daha önce kullanılıyorsa, içindeki bazı tablolarda bir veritabanı zaten var olabilir. Daha önce bilgisayarınızda kullanılmamış yeni bir ad seçin ve Web. config dosyasını bu yeni veritabanı adını kullanmak üzere işaret etmek üzere değiştirin. Alternatif olarak, var olan 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

Paket/YAYıMLAMA SQL sekmesinde yapılandırılmış veritabanı dağıtımı kullanıyorsunuz, dağıtım SıRASıNDA çalışan SQL betikleri Kullanıcı oluşturma veya rol oluşturma komutları içerir ve bu komutlar yürütüldüğünde betik yürütme başarısız olur. 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.

Bu hata, SQL 'ı paketle/Yayımla sekmesi yerine Web 'i Yayımla sihirbazında yapılandırdığınızda, yapılandırma ve dağıtım forumundaki bir iş parçacığı oluşturun ve çözüm bu sorun giderme sayfasına eklenir.

Olası nedeni 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 db_datareader, db_datawriterve db_ddladmin rollerini sizin için ayarladığı Kullanıcı hesabına atayabilirler. Bunlar, çoğu veritabanı nesnesini oluşturmak için yeterlidir, ancak kullanıcı veya rol oluşturmaya yönelik değildir. Hatayı önlemenin bir yolu, veritabanı dağıtımından kullanıcılar ve roller dışlamamaktır. Bunu, veritabanının otomatik olarak oluşturulan komut dosyası için PreSource öğesini düzenleyerek aşağıdaki öznitelikleri içerecek şekilde düzenleyebilirsiniz:

CopyAllUsers=false, CopyAllRoles=false

Proje dosyasında PreSource öğesinin nasıl düzenleneceği hakkında daha fazla 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 rollerinin hedef veritabanında olması gerekiyorsa, yardım almak için barındırma sağlayıcınızla görüşün.

Dağıtım sırasında Özel betikler çalıştırılırken zaman aşımı hatası SQL Server

Senaryo

Dağıtım sırasında çalışacak özel SQL betikleri belirttiniz ve Web Dağıtımı onları çalıştırdığında zaman aşımına uğrar.

Olası nedeni ve çözümü

Farklı işlem modlarına sahip birden çok betiğin çalıştırılması zaman aşımı hatalarına neden olabilir. Varsayılan olarak, otomatik olarak oluşturulan betikler bir işlemde çalışır, ancak özel betikler değildir. Paket/YAYıMLAMA SQL sekmesinde var olan bir veritabanından verileri ve/veya şemayı çekme seçeneğini BELIRLERSENIZ ve özel bir SQL betiği eklerseniz, tüm betiklerin aynı işlem ayarlarını kullanabilmesi için bazı betiklerdeki işlem ayarlarını değiştirmelisiniz. Daha fazla bilgi için bkz. nasıl yapılır: bir Web uygulaması projesiyle veritabanı dağıtma.

İşlem ayarlarını, hepsi aynı olması ve bu hatayı almaya devam etmek için yapılandırdıysanız, olası bir geçici çözüm betikleri ayrı olarak çalıştırmak olur. SQL paketleme/Yayımla sekmesindeki veritabanı betikleri kılavuzunda, zaman aşımı hatasına neden olan betiğin dahil etme onay kutusunu temizleyip projeyi yayımlayın. Ardından veritabanı betikleri kılavuzuna geri dönün, bu betiğin içerme onay kutusunu seçin ve diğer betikler için ekleme onay kutularını temizleyin. Ardından projeyi yeniden yayımlayın. Bu kez yayımladığınızda, yalnızca seçilen özel betik çalışı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:

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

Olası nedeni ve çözümü

Hata iletisi, komutun bir test raporu oluşturmayacağı 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ırırken bir sorun olduğunu gösterir.

Bu uygulama ManagedRuntimeVersion v 4.0 gerektiriyor

Senaryo

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

Hata: ' sitemanifest/dbFullSql [@path= ' C:\TEMP\AdventureWorksGrant.sql ']/Sqlscrıpt ' akış verileri henüz kullanılamıyor. Kullanmaya çalıştığınız uygulama havuzu ' v 2.0 ' olarak ayarlanmış ' managedRuntimeVersion ' özelliğine sahip. Bu uygulama ' v 4.0 ' gerektirir.

Olası nedeni ve çözümü

ASP.NET 4, IIS 'de yüklü değil. Dağıttığınız sunucu geliştirme Bilgisayarınız ise ve üzerinde Visual Studio 2010 yüklüyse, ASP.NET 4 bilgisayara yüklenir, ancak IIS 'de yüklenmemiş olabilir. 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 ' ü çalıştırın:

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

Microsoft. Web. Deployment. DeploymentProviderOptions yayınlanamadı

Senaryo

Bir paket dağıttığınızda 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ı nedeni ve çözümü

Web Dağıtımı 1,1 Kullanıcı arabirimini kullanarak IIS Manager 'dan Web Dağıtımı 2,0 ' nin yüklü olduğu bir sunucuya dağıtmaya çalışıyorsunuz. Bir paketi içeri aktararak dağıtmak üzere IIS uzaktan yönetim aracını kullanıyorsanız, bağlantıyı kurarken yeni özellikler kullanılabilir iletişim kutusunu işaretleyin. (Bu iletişim kutusu yalnızca bağlantı ilk kez oluşturulduğunda görüntülenebilir. Bağlantıyı temizlemek ve baştan başlamak için, IIS Yöneticisi 'Ni kapatın ve komut istemine inetmgr /reset girerek yeniden başlatın.) Listelenen özelliklerden biri Web DAĞıTıMı UIise ve 8 ' den daha düşük bir sürüm numarası içeriyorsa, dağıttığınız sunucu, Web dağıtımı yüklü olan hem 1,1 hem de 2,0 sürümüne sahip olabilir. 2,0 yüklü bir istemciden dağıtım yapmak 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ı nedeni ve çözümü

Dağıtılan sitede, uygulamanın bin klasörü altında yerel Derlemelerle AMD64 ve x86 alt klasörleri yok. SQL Server Compact yüklü bir bilgisayarda, yerel derlemeler C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Privatekonumunda bulunur. Doğru dosyaları bir Visual Studio projesindeki 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ı bir betik ekler. Ancak bunların dağıtılması için, bunları projeye el ile eklemeniz gerekir. Daha fazla bilgi için bkz. dağıtma SQL Server Compact öğreticisi.

Bir Entity Framework Code First uygulaması dağıttıktan sonra "yol geçerli değil" hatası

Senaryo

Entity Framework Code First Migrations kullanan bir uygulamayı ve veritabanını App_Data klasöründeki bir dosyaya depolayan SQL Server Compact gibi bir DBMS 'yi dağıtırsınız. İlk dağıtımınız sonrasında veritabanını oluşturmak için Code First Migrations yapılandırdınız. Uygulamayı çalıştırdığınızda aşağıdaki örnekte olduğu gibi 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ı nedeni ve çözümü

Code First veritabanını oluşturmaya çalışıyor, ancak uygulama_veri klasörü yok. Dağıttığınız sırada app_Data klasöründe hiç bir dosya yoktu veya Proje özellikleri penceresinin Package/Publish Web sekmesinde uygulama_verileri hariç tut ' u seçtiniz. Sunucuda kopyalanacak klasörde dosya yoksa dağıtım işlemi sunucuda bir klasör oluşturmaz. Veritabanında zaten bir veritabanı ayarlandıysa, yayımlama profilinde Hedefteki ek dosyaları Kaldır ' ı seçtiyseniz dağıtım işlemi dosyaları ve uygulama_veri klasörünün kendisini siler. Sorunu çözmek için, app_veri klasörüne. txt dosyası gibi bir yer tutucu dosyası yerleştirin, uygulama_ ' ın seçili olmadığından emin olun ve yeniden dağıtın.

"Temel aldığı RCW 'dan ayrılan COM nesnesi kullanılamaz."

Senaryo

Uygulamanızı dağıtmak için tek tıklamayla yayımlama 'yı başarıyla kullanıyorsunuz ve sonra bu hatayı almaya başlacaksınız:

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ı nedeni ve çözümü

Bu hatayı çözmek için genellikle Visual Studio 'Nun kapatılıp yeniden başlatılması gerekir.

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 hata ile başarısız olur (kullandığınız kullanıcı hesabı, setACL yetkilisi yoksa).

Olası nedeni ve çözümü

Varsayılan olarak, Visual Studio sitenin kök klasöründe okuma izinlerini ayarlar ve App_Data klasöründe yazma izinlerine sahiptir. Site klasörlerinin varsayılan izinlerinin doğru olduğunu ve ayarlanması gerekmediğini biliyorsanız,<ıncludesetaclproviderto Destination>(tek bir profili etkilemek için) veya WPP. targets dosyasına (tüm profilleri etkilemek için) yanlış</ıncludesetaclproviderondestination> ekleyerek bu davranışı devre dışı bırakabilirsiniz. Bu dosyaların nasıl düzenleneceği hakkında daha fazla 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 yazmayı denediğinde erişim reddedildi hataları

Senaryo

Uygulama klasörlerinden birinde bir dosyayı oluşturmaya veya düzenlemeye çalıştığında, bu klasör için yazma yetkisi olmadığından uygulamanızın hataları.

Olası nedeni ve çözümü

Varsayılan olarak, Visual Studio sitenin kök klasöründe okuma izinlerini ayarlar ve App_Data klasöründe yazma izinlerine sahiptir. Uygulamanızın bir alt klasöre yazma erişimi gerekiyorsa, klasör Izinlerini ayarlama ve üretim ortamı öğreticilerine dağıtma bölümünde gösterildiği gibi bu klasör için izinleri ayarlayabilirsiniz. Uygulamanızın, sitenin kök klasörüne yazma erişimi olması gerekiyorsa, yayımlama profili dosyasına (tek bir profili etkilemek için) veya WPP. targets dosyasına (tüm profilleri etkilemek için) <ıncludesetaclproviderto destination>False</ıncludesetaclproviderondestination> ekleyerek, kök klasörde salt okuma erişimi ayarlamayı engellemeniz gerekir. Bu dosyaların nasıl düzenleneceği hakkında daha fazla 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 daha sonraki bir sürüme başvuruyor

Senaryo

ASP.NET 4,5 hedefleyen bir Web projesini başarıyla yayımladınız, ancak uygulamayı çalıştırdığınızda (Web. config dosyasında customErrors modu "off" olarak ayarlandığında) şu hatayı alırsınız:

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 ' den aşağıdaki satırı vurgular:

<compilation targetFramework="4.5" />

Olası nedeni ve çözümü

Sunucu, ASP.NET 4,5 desteklemez. ASP.NET 4,5 desteğinin ne zaman ve ne zaman ekleneceğini öğrenmek için barındırma sağlayıcısına başvurun. Sunucunun yükseltilmesi bir seçenek değilse, bunun yerine ASP.NET 4 veya önceki bir sürümünü hedefleyen bir Web projesi dağıtmanız gerekir. Aynı hedefe bir ASP.NET 4 veya daha önceki bir Web projesi dağıtırsanız, Web 'ı Yayımla sihirbazının Ayarlar sekmesinde Hedefteki ek dosyaları Kaldır onay kutusunu seçin. Hedefteki ek dosyaları Kaldır' ı seçmezseniz, yapılandırma hata sayfasını almaya devam edersiniz.

Proje özellikleri penceresi bir hedef çerçeve açılan listesi içerir, ancak bu sorunu yalnızca .NET Framework 4,5 ' den .NET Framework 4' e değiştirerek çözebilirsiniz. Hedef çerçeveyi önceki bir Framework sürümüne değiştirirseniz, projenin daha sonraki Framework sürümü derlemelerine başvuruları olur ve çalıştırılmaz. Bu başvuruları el ile değiştirmeniz veya .NET Framework 4 veya önceki bir sürümü hedefleyen yeni bir proje oluşturmanız gerekir. Daha fazla bilgi için bkz. Web siteleri için .NET Framework Hedefleme.