Visual Studio veya Visual Web Developer kullanarak SQL Server Compact bir ASP.NET Web uygulaması dağıtma: sorun giderme (12/12)Deploying an ASP.NET Web Application with SQL Server Compact using Visual Studio or Visual Web Developer: Troubleshooting (12 of 12)

Tom Dykstra tarafındanby Tom Dykstra

Başlatıcı projesi indirDownload Starter Project

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.This series of tutorials shows you how to deploy (publish) an ASP.NET web application project that includes a SQL Server Compact database by using Visual Studio 2012 RC or Visual Studio Express 2012 RC for Web. Ayrıca, Web yayımlama güncelleştirmesini yüklerseniz Visual Studio 2010 de kullanabilirsiniz.You can also use Visual Studio 2010 if you install the Web Publish Update. Seriye giriş için, serideki ilk öğreticiyebakın.For an introduction to the series, see the first tutorial in the series.

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.For a tutorial that shows deployment features introduced after the RC release of Visual Studio 2012, shows how to deploy SQL Server editions other than SQL Server Compact, and shows how to deploy to Windows Azure Web Sites, see ASP.NET Web Deployment using Visual Studio.

Bu sayfada, Visual Studio kullanarak bir ASP.NET Web uygulaması dağıtırken ortaya çıkabilecek bazı yaygın sorunlar açıklanmaktadır.This page describes some common problems that may arise when you deploy an ASP.NET web application by using Visual Studio. Her biri için bir veya daha fazla olası nedenler ve ilgili çözümler sağlanır.For each one, one or more possible causes and corresponding solutions are provided.

'/' Uygulamasında sunucu hatası-geçerli özel hata ayarları hatanın ayrıntılarının uzaktan görüntülenmesini engelliyorServer Error in '/' Application - Current Custom Error Settings Prevent Details of the Error from Being Viewed Remotely

SenaryoScenario

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:After deploying a site to a remote host, you get an error message that mentions the customErrors setting in the Web.config file but doesn't indicate what the actual cause of the error was:

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üPossible Cause and Solution

Varsayılan olarak, ASP.NET, yalnızca Web uygulamanız yerel bilgisayarda çalışırken ayrıntılı hata bilgilerini gösterir.By default, ASP.NET shows detailed error information only when your web application is running on the local computer. 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.Generally you don't want to display detailed error information when your web application is publicly available over the Internet, because hackers may be able to use this information to find vulnerabilities in the application. 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.However, when you are deploying a site or updates to a site, sometimes something will go wrong and you need to get the actual error message.

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:To enable the application to display detailed error messages when it runs on the remote host, edit the Web.config file to set customErrors mode off, redeploy the application, and run the application again:

  1. Uygulama Web. config dosyasının system.web öğesinde bir customErrors öğesi varsa mode özniteliğini "off" olarak değiştirin.If the application Web.config file has a customErrors element in the system.web element, change the mode attribute to "off". Aksi takdirde, aşağıdaki örnekte gösterildiği gibi mode özniteliği "off" olarak ayarlanmış system.web öğesinde bir customErrors öğesi ekleyin:Otherwise add a customErrors element in the system.web element with the mode attribute set to "off", as shown in the following example:

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

  3. Uygulamayı çalıştırın ve daha önce hatanın oluşmasına neden olan her şeyi tekrarlayın.Run the application and repeat whatever you did earlier that caused the error to occur. Artık gerçek hata iletisinin ne olduğunu görebilirsiniz.Now you can see what the actual error message is.

  4. Hatayı çözümledikten sonra özgün customErrors ayarını geri yükleyin ve uygulamayı yeniden dağıtın.When you have resolved the error, restore the original customErrors setting and redeploy the application.

SQL Server Compact kullanan bir Web sayfasında erişim reddedildiAccess is Denied in a Web Page that Uses SQL Server Compact

SenaryoScenario

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:When you deploy a site that uses SQL Server Compact and you run a page in the deployed site that accesses the database, you see the following error message:

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

Olası nedeni ve çözümüPossible Cause and Solution

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.The NETWORK SERVICE account on the server needs to be able to read SQL Service Compact native binaries that are in the bin\amd64 or bin\x86 folder, but it does not have read permissions for those folders. Alt klasörlere izinleri genişletdiğinizden emin olmak için bin KLASÖRÜNDE ağ hizmeti için okuma izni ayarlayın.Set read permission for NETWORK SERVICE on the bin folder, making sure to extend the permissions to subfolders.

Yetersiz Izinler nedeniyle yapılandırma dosyası okunamıyorCannot Read Configuration File Due to Insufficient Permissions

SenaryoScenario

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:When you click the Visual Studio publish button to deploy an application to IIS on your local machine, publishing fails and the Output window shows an error message similar to this:

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üPossible Cause and Solution

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.To use one-click publish to IIS on your local machine, you must be running Visual Studio with administrator permissions. Visual Studio 'Yu kapatın ve yönetici izinleriyle yeniden başlatın.Close Visual Studio and restart it with administrator permissions.

Hedef bilgisayara bağlanılamadı... Belirtilen Işlemi kullanmaCould Not Connect to the Destination Computer ... Using the Specified Process

SenaryoScenario

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:When you click the Visual Studio publish button to deploy an application, publishing fails and the Output window shows an error message similar to this:

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üPossible Cause and Solution

Bir ara sunucu, hedef sunucuyla iletişimi kesintiye uğratma.A proxy server is interrupting communication with the destination server. 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.From the Windows Control Panel or in Internet Explorer, select Internet Options and select the Connections tab. In the Internet Properties dialog box, click LAN Settings. Yerel ağ (LAN) ayarları iletişim kutusunda Ayarları otomatik olarak algıla onay kutusunu temizleyin.In the Local Area Network (LAN) Settings dialog box, clear the Automatically detect settings checkbox. Ardından Yayınla düğmesine tekrar tıklayın.Then click the publish button again.

Sorun devam ederse, proxy veya güvenlik duvarı ayarları ile neler yapılabileceğini belirlemek için sistem yöneticinize başvurun.If the problem persists, contact your system administrator to determine what can be done with proxy or firewall settings. 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.The problem happens because Web Deploy uses a non-standard port for Web Management Service deployment (8172); for other connections, Web Deploy uses port 80. Bir üçüncü taraf barındırma sağlayıcısına dağıtım yaparken, genellikle Web yönetimi hizmetini kullanıyorsunuz.When you are deploying to a third-party hosting provider, you are typically using the Web Management Service.

Varsayılan .NET 4,0 uygulama havuzu yokDefault .NET 4.0 Application Pool Does Not Exist

SenaryoScenario

.NET Framework 4 gerektiren bir uygulamayı dağıtırken aşağıdaki hata iletisini görürsünüz:When you deploy an application that requires the .NET Framework 4, you see the following error message:

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üPossible Cause and Solution

ASP.NET 4, IIS 'de yüklü değil.ASP.NET 4 is not installed in IIS. 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.If the server you are deploying to is your development computer and has Visual Studio 2010 installed on it, ASP.NET 4 is installed on the computer but might not be installed in IIS. 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:On the server that you are deploying to, open an elevated command prompt and install ASP.NET 4 in IIS by running the following commands:

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.You might also need to manually set the .NET Framework version of the default application pool. Daha fazla bilgi için bkz. IIS 'e test ortamı olarak dağıtma öğreticisi.For more information, see the Deploying to IIS as a Test Environment tutorial.

Başlatma dizesinin biçimi, 0 dizininden başlayan belirtime uymuyor.Format of the initialization string does not conform to specification starting at index 0.

SenaryoScenario

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:After you deploy an application using one-click publish, when you run a page that accesses the database you get the following error message:

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

Olası nedeni ve çözümüPossible Cause and Solution

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:Open the Web.config file in the deployed site and check to see whether the connection string values begin with $(ReplaceableToken_, as in the following example:

<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:If the connection strings look like this example, edit the project file and add the following property to the PropertyGroup element that is for all build configurations:

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>

Ardından uygulamayı yeniden dağıtın.Then redeploy the application.

HTTP 500 Iç sunucu hatasıHTTP 500 Internal Server Error

SenaryoScenario

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:When you run the deployed site, you see the following error message without specific information indicating the cause of the error:

HTTP Error 500 - Internal Server Error.

Olası nedeni ve çözümüPossible Cause and Solution

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.There are many causes of 500 errors, but one possible cause if you are following these tutorials is that you put an XML element in the wrong place in one of the XML transformation files. Ö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.For example, you would get this error if you put the transformation that inserts a <location> element under <system.web> instead of directly under <configuration>. Bu durumda çözüm, XML dönüşüm dosyasını düzeltmek ve yeniden dağıtmak olur.The solution in that case is to correct the XML transformation file and redeploy.

HTTP 500,21 Iç sunucu hatasıHTTP 500.21 Internal Server Error

SenaryoScenario

Dağıtılan siteyi çalıştırdığınızda aşağıdaki hata iletisini görürsünüz:When you run the deployed site, you see the following error message:

HTTP Error 500.21 - Internal Server Error. 
Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list.

Olası nedeni ve çözümüPossible Cause and Solution

Dağıttığınız site ASP.NET 4 hedefliyor, ancak ASP.NET 4, sunucuda IIS 'de kayıtlı değil.The site you have deployed targets ASP.NET 4, but ASP.NET 4 is not registered in IIS on the server. Sunucuda, yükseltilmiş bir komut istemi açın ve aşağıdaki komutları çalıştırarak ASP.NET 4 ' ü kaydedin:On the server open an elevated command prompt and register ASP.NET 4 by running the following commands:

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.You might also need to manually set the .NET Framework version of the default application pool. Daha fazla bilgi için bkz. IIS 'e test ortamı olarak dağıtma öğreticisi.For more information, see the Deploying to IIS as a Test Environment tutorial.

SQL Server Express veritabanı uygulama_verilerinde oturum açma başarısız olduLogin Failed Opening SQL Server Express Database in App_Data

SenaryoScenario

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:You updated the Web.config file connection string to point to a SQL Server Express database as an .mdf file in your App_Data folder, and the first time you run the application you see the following error message:

System.Data.SqlClient.SqlException: Cannot open database "DatabaseName" requested by the login. The login failed.

Olası nedeni ve çözümüPossible Cause and Solution

. 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.The name of the .mdf file cannot match the name of any SQL Server Express database that has ever existed on your computer, even if you deleted the .mdf file of the previously existing database. . 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.Change the name of the .mdf file to a name that has never been used as a database name and change the Web.config file to use the new name. Alternatif olarak, önceden var olan SQL Server Express veritabanlarını silmek için SQL Server Management Studio Express kullanabilirsiniz.As an alternative, you can use SQL Server Management Studio Express to delete previously existing SQL Server Express databases.

Model uyumluluğu denetlenemiyorModel Compatibility Cannot be Checked

SenaryoScenario

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:You updated the Web.config file connection string to point to a new SQL Server Express database, and the first time you run the application you see the following error message:

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üPossible Cause and Solution

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.If the database name you put in the Web.config file was ever used before on your computer, a database might already exist with some tables in it. 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.Select a new name that has not been used on your computer before and change the Web.config file to point to use this new database name. Alternatif olarak, var olan veritabanını silmek için SQL Server Express yardımcı programını veya SQL Server Management Studio Express 'i kullanabilirsiniz.As an alternative, you can use SQL Server Express Utility or SQL Server Management Studio Express to delete the existing database.

Bir betik Kullanıcı veya rol oluşturmaya çalıştığında SQL hatasıSQL Error When a Script Attempts to Create Users or Roles

SenaryoScenario

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.You are using database deployment configured on the Package/Publish SQL tab, SQL scripts that run during deployment include Create User or Create Role commands, and script execution fails when those commands are executed. Aşağıdakiler gibi daha ayrıntılı iletiler görebilirsiniz:You might see more detailed messages, such as the following:

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.If this error occurs when you have configured database deployment in the Publish Web wizard rather than the Package/Publish SQL tab, create a thread in the Configuration and Deployment forum, and the solution will be added to this troubleshooting page.

Olası nedeni ve çözümüPossible Cause and Solution

Dağıtımı gerçekleştirmek için kullandığınız kullanıcı hesabının, Kullanıcı veya rol oluşturma izni yok.The user account you are using to perform deployment does not have permission to create users or roles. Örneğin, barındırma şirketi db_datareader, db_datawriterve db_ddladmin rollerini sizin için ayarladığı Kullanıcı hesabına atayabilirler.For example, the hosting company might assign the db_datareader, db_datawriter, and db_ddladmin roles to the user account that it sets up for you. Bunlar, çoğu veritabanı nesnesini oluşturmak için yeterlidir, ancak kullanıcı veya rol oluşturmaya yönelik değildir.These are sufficient for creating most database objects, but not for creating users or roles. Hatayı önlemenin bir yolu, veritabanı dağıtımından kullanıcılar ve roller dışlamamaktır.One way to avoid the error is by excluding users and roles from database deployment. 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:You can do this by editing the PreSource element for the database's automatically generated script so that it includes the following attributes:

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.For information about how to edit the PreSource element in the project file, see How to: Edit Deployment Settings in the Project File. 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.If the users or roles in your development database need to be in the destination database, contact your hosting provider for assistance.

Dağıtım sırasında Özel betikler çalıştırılırken zaman aşımı hatası SQL ServerSQL Server Timeout Error When Running Custom Scripts During Deployment

SenaryoScenario

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.You have specified custom SQL scripts to run during deployment, and when Web Deploy runs them, they time out.

Olası nedeni ve çözümüPossible Cause and Solution

Farklı işlem modlarına sahip birden çok betiğin çalıştırılması zaman aşımı hatalarına neden olabilir.Running multiple scripts that have different transaction modes can cause time-out errors. Varsayılan olarak, otomatik olarak oluşturulan betikler bir işlemde çalışır, ancak özel betikler değildir.By default, automatically generated scripts run in a transaction, but custom scripts do not. 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.If you select the Pull data and/or schema from an existing database option on the Package/Publish SQL tab, and if you add a custom SQL script, you must change transaction settings on some scripts so that all scripts use the same transaction settings. Daha fazla bilgi için bkz. nasıl yapılır: bir Web uygulaması projesiyle veritabanı dağıtma.For more information, see How to: Deploy a Database With a Web Application Project.

İş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.If you have configured transaction settings so that all are the same but still get this error, a possible workaround is to run the scripts separately. 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.In the Database Scripts grid in the Package/Publish SQL tab, clear the Include check box for the script that causes the timeout error, then publish the project. 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.Then go back into the Database Scripts grid, select that script's Include check box, and clear the Include check boxes for the other scripts. Ardından projeyi yeniden yayımlayın.Then publish the project again. Bu kez yayımladığınızda, yalnızca seçilen özel betik çalışır.This time when you publish, only the selected custom script runs.

Site bildiriminin akış verileri henüz kullanılamıyorStream Data of Site Manifest Is Not Yet Available

SenaryoScenario

t (test) seçeneğiyle Deploy. cmd dosyasını kullanarak bir paket yüklerken aşağıdaki hata iletisini görürsünüz:When you are installing a package using the deploy.cmd file with the t (test) option, you see the following error message:

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

Olası nedeni ve çözümüPossible Cause and Solution

Hata iletisi, komutun bir test raporu oluşturmayacağı anlamına gelir.The error message means that the command cannot produce a test report. Ancak, y (gerçek yükleme) seçeneğini kullanırsanız komut çalıştırılabilir.However, the command might run if you use the y (actual installation) option. İleti yalnızca komutu test modunda çalıştırırken bir sorun olduğunu gösterir.The message indicates only that there is a problem with running the command in test mode.

Bu uygulama ManagedRuntimeVersion v 4.0 gerektiriyorThis Application Requires ManagedRuntimeVersion v4.0

SenaryoScenario

Dağıtmaya çalıştığınızda aşağıdaki hata iletisini görürsünüz:When you attempt to deploy, you see the following error message:

Hata: ' sitemanifest/dbFullSql [@path= ' C:\TEMP\AdventureWorksGrant.sql ']/Sqlscrıpt ' akış verileri henüz kullanılamıyor.Error: The stream data of 'sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' is not yet available. Kullanmaya çalıştığınız uygulama havuzu ' v 2.0 ' olarak ayarlanmış ' managedRuntimeVersion ' özelliğine sahip.The application pool that you are trying to use has the 'managedRuntimeVersion' property set to 'v2.0'. Bu uygulama ' v 4.0 ' gerektirir.This application requires 'v4.0'.

Olası nedeni ve çözümüPossible Cause and Solution

ASP.NET 4, IIS 'de yüklü değil.ASP.NET 4 is not installed in IIS. 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.If the server you are deploying to is your development computer and has Visual Studio 2010 installed on it, ASP.NET 4 is installed on the computer but might not be installed in IIS. 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:On the server that you are deploying to, open an elevated command prompt and install ASP.NET 4 in IIS by running the following commands:

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

Microsoft. Web. Deployment. DeploymentProviderOptions yayınlanamadıUnable to cast Microsoft.Web.Deployment.DeploymentProviderOptions

SenaryoScenario

Bir paket dağıttığınızda aşağıdaki hata iletisini görürsünüz:When you are deploying a package, you see the following error message:

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

Olası nedeni ve çözümüPossible Cause and Solution

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.You are trying to deploy from IIS Manager using the Web Deploy 1.1 UI to a server that has Web Deploy 2.0 installed. 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.If you are using the IIS Remote Administration Tool to deploy by importing a package, check the New Features Available dialog box when you establish the connection. (Bu iletişim kutusu yalnızca bağlantı ilk kez oluşturulduğunda görüntülenebilir.(This dialog box might only be shown once when the connection is first established. 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.To clear the connection and start over, close IIS Manager and start it up again by entering inetmgr /reset at the command prompt.) If one of the features listed is Web Deploy UI, and it has a version number lower than 8, the server you are deploying to might have both 1.1 and 2.0 versions of Web Deploy installed. 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.To deploy from a client that has 2.0 installed, the server must have only Web Deploy 2.0 installed. Bu sorunu çözmek için barındırma sağlayıcınıza başvurmanız gerekir.You will have to contact your hosting provider to resolve this problem.

SQL Server Compact yerel bileşenleri yüklenemiyorUnable to load the native components of SQL Server Compact

SenaryoScenario

Dağıtılan siteyi çalıştırdığınızda aşağıdaki hata iletisini görürsünüz:When you run the deployed site, you see the following error message:

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üPossible Cause and Solution

Dağıtılan sitede, uygulamanın bin klasörü altında yerel Derlemelerle AMD64 ve x86 alt klasörleri yok.The deployed site does not have amd64 and x86 subfolders with the native assemblies in them under the application's bin folder. SQL Server Compact yüklü bir bilgisayarda, yerel derlemeler C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Privatekonumunda bulunur.On a computer that has SQL Server Compact installed, the native assemblies are located in C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private. Doğru dosyaları bir Visual Studio projesindeki doğru klasörlere almanın en iyi yolu NuGet SqlServerCompact paketini yüklemektir.The best way to get the correct files into the correct folders in a Visual Studio project is to install the NuGet SqlServerCompact package. Paket yüklemesi, yerel derlemeleri AMD64 ve x86'ya kopyalamak için derleme sonrası bir betik ekler.Package installation adds a post-build script to copy the native assemblies into amd64 and x86. Ancak bunların dağıtılması için, bunları projeye el ile eklemeniz gerekir.In order for these to be deployed, however, you have to manually include them in the project. Daha fazla bilgi için bkz. dağıtma SQL Server Compact öğreticisi.For more information, see the Deploying SQL Server Compact tutorial.

Bir Entity Framework Code First uygulaması dağıttıktan sonra "yol geçerli değil" hatası"Path is not valid" error after deploying an Entity Framework Code First application

SenaryoScenario

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.You deploy an application that uses Entity Framework Code First Migrations and a DBMS such as SQL Server Compact which stores its database in a file in the App_Data folder. İlk dağıtımınız sonrasında veritabanını oluşturmak için Code First Migrations yapılandırdınız.You have Code First Migrations configured to create the database after your first deployment. Uygulamayı çalıştırdığınızda aşağıdaki örnekte olduğu gibi bir hata iletisi alırsınız:When you run the application you get an error message like the following example:

The path is not valid. Check the directory for the database. [Path = c:\inetpub\wwwroot\App_Data\DatabaseName.sdf ]

Olası nedeni ve çözümüPossible Cause and Solution

Code First veritabanını oluşturmaya çalışıyor, ancak uygulama_veri klasörü yok.Code First is attempting to create the database but the App_Data folder does not exist. 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.Either you didn't have any files in the App_Data folder when you deployed, or you selected Exclude App_Data on the Package/Publish Web tab of the Project Properties window. Sunucuda kopyalanacak klasörde dosya yoksa dağıtım işlemi sunucuda bir klasör oluşturmaz.The deployment process won't create a folder on the server if there are no files in the folder to be copied to the server. 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.If you already had the database set up in the site, the deployment process will delete the files and the App_Data folder itself if you selected Remove additional files at destination in the publish profile. 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.To solve the problem, put a placeholder file such as a .txt file in the App_Data folder, make sure you do not have Exclude App_Data selected, and redeploy.

"Temel aldığı RCW 'dan ayrılan COM nesnesi kullanılamaz.""COM object that has been separated from its underlying RCW cannot be used."

SenaryoScenario

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:You have been successfully using one-click publish to deploy your application and then you start getting this error:

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üPossible Cause and Solution

Bu hatayı çözmek için genellikle Visual Studio 'Nun kapatılıp yeniden başlatılması gerekir.Closing and restarting Visual Studio is usually all that is required to resolve this error.

Yayımlama için kullanılan Kullanıcı kimlik bilgilerinin setACL yetkilisi olmadığından dağıtım başarısız oluyorDeployment Fails Because User Credentials Used for Publishing Don't Have setACL Authority

SenaryoScenario

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).Publishing fails with an error that indicates you don't have authority to set folder permissions (the user account you are using doesn't have setACL authority).

Olası nedeni ve çözümüPossible Cause and Solution

Varsayılan olarak, Visual Studio sitenin kök klasöründe okuma izinlerini ayarlar ve App_Data klasöründe yazma izinlerine sahiptir.By default, Visual Studio sets read permissions on the root folder of the site and write permissions on the App_Data folder. 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.If you know that the default permissions on site folders are correct and do not need to be set, you disable this behavior by adding <IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> to the publish profile file (to affect a single profile) or to the wpp.targets file (to affect all profiles). 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.For information about how to edit these files, see How to: Edit Deployment Settings in Profile (.pubxml) Files.

Uygulama bir uygulama klasörüne yazmayı denediğinde erişim reddedildi hatalarıAccess Denied Errors when the Application Tries to Write to an Application Folder

SenaryoScenario

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ı.Your application errors when it tries to create or edit a file in one of the application folders, because it does not have write authority for that folder.

Olası nedeni ve çözümüPossible Cause and Solution

Varsayılan olarak, Visual Studio sitenin kök klasöründe okuma izinlerini ayarlar ve App_Data klasöründe yazma izinlerine sahiptir.By default, Visual Studio sets read permissions on the root folder of the site and write permissions on the App_Data folder. 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.If your application needs write access to a sub-folder, you can set permissions for that folder as shown in the Setting Folder Permissions and Deploying to the Production Environment tutorials. 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.If your application needs write access to the root folder of the site, you have to prevent it from setting read-only access on the root folder by adding <IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> to the publish profile file (to affect a single profile) or to the wpp.targets file (to affect all profiles). 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.For information about how to edit these files, see How to: Edit Deployment Settings in Profile (.pubxml) Files.

Yapılandırma hatası-targetFramework özniteliği, .NET Framework yüklü sürümünden daha sonraki bir sürüme başvuruyorConfiguration Error - targetFramework attribute references a version that is later than the installed version of the .NET Framework

SenaryoScenario

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:You successfully published a web project that targets ASP.NET 4.5, but when you run the application (with the customErrors mode set to "off" in the Web.config file) you get the following error:

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:The Source Error box of the error page highlights the following line from Web.config as the cause of the error:

<compilation targetFramework="4.5" />

Olası nedeni ve çözümüPossible Cause and Solution

Sunucu, ASP.NET 4,5 desteklemez.The server does not support ASP.NET 4.5. 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.Contact the hosting provider to determine when and if support for ASP.NET 4.5 can be added. 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.If upgrading the server is not an option, you have to deploy a web project that targets ASP.NET 4 or earlier instead.If you deploy an ASP.NET 4 or earlier web project to the same destination, select the Remove additional files at destination check box on the Settings tab of the Publish Web wizard. Hedefteki ek dosyaları Kaldır' ı seçmezseniz, yapılandırma hata sayfasını almaya devam edersiniz.If you don't select Remove additional files at destination, you will continue to get the Configuration Error page.

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.The project Properties windows includes a Target framework drop-down list, but you can't resolve this problem by just changing that from .NET Framework 4.5 to .NET Framework 4. 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.If you change the target framework to an earlier framework version, the project will still have references to the later framework version's assemblies and will not run. 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.You have to manually change those references or create a new project that targets .NET Framework 4 or earlier. Daha fazla bilgi için bkz. Web siteleri için .NET Framework Hedefleme.For more information, see .NET Framework Targeting for Web Sites.