Sdílet prostřednictvím


ASP.NET nasazení webu pomocí sady Visual Studio: Řešení potíží

Tom Dykstra

Stažení úvodního projektu

V této sérii kurzů se dozvíte, jak pomocí sady Visual Studio 2012 nebo Visual Studio 2010 nasadit (publikovat) ASP.NET webovou aplikaci do Azure App Service Web Apps nebo u poskytovatele hostingu třetí strany. Informace o této sérii najdete v prvním kurzu této série.

Tato stránka popisuje některé běžné problémy, které mohou nastat při nasazení ASP.NET webové aplikace pomocí sady Visual Studio. Pro každou z nich je k dispozici jedna nebo více možných příčin a odpovídající řešení.

Uvedené scénáře platí jak pro Azure, tak pro poskytovatele hostingu třetích stran. Další informace o řešení potíží s webovými aplikacemi v Azure App Service najdete v následujících zdrojích informací:

Chyba serveru v aplikaci /– aktuální nastavení vlastní chyby brání vzdálenému zobrazení podrobností o chybě.

Scenario

Po nasazení webu na vzdáleného hostitele se zobrazí chybová zpráva, která zmíní nastavení customErrors v souboru Web.config, ale neuvádí skutečnou příčinu chyby:

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".

Možná příčina a řešení

Ve výchozím nastavení ASP.NET zobrazuje podrobné informace o chybách pouze v případě, že je webová aplikace spuštěna v místním počítači. Obecně platí, že nechcete zobrazovat podrobné informace o chybách, když je vaše webová aplikace veřejně dostupná přes internet, protože hackeři mohou tyto informace použít k nalezení ohrožení zabezpečení v aplikaci. Když ale nasazujete web nebo aktualizujete web, někdy se něco pokazí a potřebujete zobrazit skutečnou chybovou zprávu.

Pokud chcete aplikaci povolit zobrazování podrobných chybových zpráv při spuštění na vzdáleném hostiteli, upravte soubor Web.config tak, aby nastavil režim customErrors, znovu nasaďte aplikaci a spusťte aplikaci znovu:

  1. Pokud má soubor aplikace Web.config element customErrors v elementu system.web, změňte atribut mode na "off". V opačném případě přidejte element customErrors do elementu system.web s atributem mode nastaveným na hodnotu "off", jak je znázorněno v následujícím příkladu:

    <configuration>
      <system.web>
        <customErrors mode="off"/>
      </system.web>
    </configuration>
    
  2. Nasaďte aplikaci.

  3. Spusťte aplikaci a opakujte vše, co jste udělali dříve a způsobily chybu. Teď uvidíte, jaká je skutečná chybová zpráva.

  4. Jakmile chybu vyřešíte, obnovte původní nastavení customErrors a znovu nasaďte aplikaci.

Nelze vytvořit stínové kopie ContosoUniversity, pokud tento soubor již existuje.

Scenario

Při pokusu o spuštění projektu v sadě Visual Studio se zobrazí chybová stránka se zprávou jako v následujícím příkladu:

Chyba serveru v aplikaci /. Nelze vytvořit stínové kopie ContosoUniversity, pokud tento soubor již existuje.

Možná příčina a řešení

Chvíli počkejte, aktualizujte prohlížeč nebo web znovu zkompilujte a zkuste ho spustit znovu.

Přístup byl odepřen na webové stránce, která používá SQL Server Compact

Scenario

Když nasadíte web, který používá SQL Server Compact, a spustíte stránku v nasazené lokalitě, která přistupuje k databázi, zobrazí se následující chybová zpráva:

Přístup byl zamítnut. (Výjimka na základě hodnoty HRESULT: 0x80070005 (E_ACCESSDENIED))

Možná příčina a řešení

Účet NETWORK SERVICE na serveru musí být schopný číst nativní binární soubory služby SQL Service Compact, které jsou ve složce bin\amd64 nebo bin\x86 , ale nemá pro tyto složky oprávnění ke čtení. Nastavte oprávnění ke čtení pro NETWORK SERVICE ve složce bin a nezapomeňte rozšířit oprávnění na podsložky.

Konfigurační soubor nejde přečíst kvůli nedostatečným oprávněním

Scenario

Když kliknete na tlačítko Publikovat v sadě Visual Studio a nasadíte aplikaci do služby IIS na místním počítači, publikování selže a v okně Výstup se zobrazí chybová zpráva podobná této:

Při čtení konfiguračního souboru SLUŽBY IIS MACHINE/REDIRECTION došlo k chybě. Identita provádějící tuto operaci byla ... Chyba: Konfigurační soubor nelze přečíst kvůli nedostatečným oprávněním.

Možná příčina a řešení

Pokud chcete použít publikování jedním kliknutím do služby IIS na místním počítači, musíte mít spuštěnou sadu Visual Studio s oprávněními správce. Zavřete Sadu Visual Studio a restartujte ji s oprávněními správce.

Nelze se připojit k cílovému počítači... Použití zadaného procesu

Scenario

Když kliknete na tlačítko Pro publikování sady Visual Studio a nasadíte aplikaci, publikování se nezdaří a v okně Výstup se zobrazí chybová zpráva podobná této:

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.

Možná příčina a řešení

Proxy server přerušuje komunikaci s cílovým serverem. V Ovládací panely Windows nebo v Internet Exploreru vyberte Možnosti Internetu a vyberte kartu Připojení. V dialogovém okně Vlastnosti internetu klikněte na Nastavení sítě LAN. V dialogovém okně Nastavení místní sítě (LAN) zrušte zaškrtnutí políčka Automaticky zjišťovat nastavení . Potom znovu klikněte na tlačítko publikovat.

Pokud problém přetrvává, obraťte se na správce systému a zjistěte, co je možné udělat s nastavením proxy serveru nebo brány firewall. K tomuto problému dochází, protože nasazení webu používá nestandardní port pro nasazení služby Správa webu (8172); Pro jiná připojení používá nasazení webu port 80. Při nasazování u poskytovatele hostingu třetí strany obvykle používáte Službu správy webu.

Výchozí fond aplikací .NET 4.0 neexistuje

Scenario

Při nasazení aplikace, která vyžaduje rozhraní .NET Framework 4, se zobrazí následující chybová zpráva:

Výchozí fond aplikací .NET 4.0 neexistuje nebo aplikaci nelze přidat. Ověřte, že je na tomto počítači nainstalovaný ASP.NET 4.0.

Možná příčina a řešení

ASP.NET 4 není ve službě IIS nainstalovaný. Pokud je server, na který nasazujete, váš vývojový počítač a je na něm nainstalovaná sada Visual Studio 2010, je v počítači nainstalovaná ASP.NET 4, ale nemusí být nainstalovaná ve službě IIS. Na serveru, na který nasazujete, otevřete příkazový řádek se zvýšenými oprávněními a spuštěním následujících příkazů nainstalujte ASP.NET 4 ve službě IIS:

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

Možná budete také muset ručně nastavit verzi rozhraní .NET Framework výchozího fondu aplikací. Další informace najdete v kurzu Nasazení do služby IIS jako testovacího prostředí v této sérii.

Formát inicializačního řetězce neodpovídá specifikaci počínaje indexem 0.

Scenario

Po nasazení aplikace publikování jedním kliknutím se při spuštění stránky, která přistupuje k databázi, zobrazí následující chybová zpráva:

Formát inicializačního řetězce neodpovídá specifikaci počínaje indexem 0.

Možná příčina a řešení

Otevřete souborWeb.config v nasazené lokalitě a zkontrolujte, jestli hodnoty připojovacího řetězce začínají $(ReplaceableToken_na , jako v následujícím příkladu:

<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>

Pokud připojovací řetězce vypadají jako v tomto příkladu, upravte soubor projektu a přidejte následující vlastnost do elementu PropertyGroup, který je pro všechny konfigurace sestavení:

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>

Pak aplikaci znovu nasaďte.

HTTP 500 – Vnitřní chyba serveru

Scenario

Při spuštění nasazené lokality se zobrazí následující chybová zpráva bez konkrétních informací o příčině chyby:

Chyba HTTP 500 – Vnitřní chyba serveru

Možná příčina a řešení

Existuje mnoho příčin chyb 500, ale jednou z možných příčin, pokud budete tyto kurzy sledovat, je to, že umístíte prvek XML na nesprávné místo v jednom z Web.config transformačních souborů. Tato chyba se například zobrazí, pokud vložíte transformaci, která vkládá <prvek location> , pod <system.web> místo přímo do <konfigurace>. Pomocí funkce Web.config transformace ve verzi Preview můžete ověřit, že transformace fungují podle očekávání. Řešením, pokud najdete nesprávně naprogramovanou transformaci, je opravit soubor transformace a nasadit ho znovu. Pokud chyba není zřejmá, zkuste zakomentovat transformace a znovu je nasadit, abyste zjistili, která z nich je příčinou chyby 500.

HTTP 500.21 Vnitřní chyba serveru

Scenario

Při spuštění nasazené lokality se zobrazí následující chybová zpráva:

Chyba HTTP 500.21 – Vnitřní chyba serveru. Obslužná rutina PageHandlerFactory-Integrated má v seznamu modulů chybný modul ManagedPipelineHandler.

Možná příčina a řešení

Web, který jste nasadili, cílí ASP.NET 4, ale ASP.NET 4 není zaregistrovaný ve službě IIS na serveru. Na serveru otevřete příkazový řádek se zvýšenými oprávněními a spuštěním následujících příkazů zaregistrujte ASP.NET 4:

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

Možná budete také muset ručně nastavit verzi rozhraní .NET Framework výchozího fondu aplikací. Další informace najdete v kurzu Nasazení do služby IIS jako testovacího prostředí v této sérii.

Přihlášení se nezdařilo při otevření databáze SQL Server Express v App_Data

Scenario

Aktualizovali jste připojovací řetězec souboruWeb.config tak, aby odkazovat na databázi SQL Server Express jako soubor .mdf ve složce App_Data. Při prvním spuštění aplikace se zobrazí následující chybová zpráva:

System.Data.SqlClient.SqlException: Nejde otevřít databázi DatabaseName požadovanou přihlášením. Přihlášení se nezdařilo.

Možná příčina a řešení

Název souboru .mdf se nemůže shodovat s názvem žádné databáze SQL Server Express, která kdy v počítači existovala, a to ani v případě, že jste odstranili soubor .mdf z dříve existující databáze. Změňte název souboru .mdf na název, který se nikdy nepoužíval jako název databáze, a změňte souborWeb.config tak, aby používal nový název. Jako alternativu můžete použít SQL Server Management Studio Express k odstranění dříve existujících databází SQL Server Express.

Kompatibilitu modelu nelze zkontrolovat.

Scenario

Aktualizovali jste připojovací řetězec souboruWeb.config tak, aby ukazoval na novou databázi SQL Server Express, a při prvním spuštění aplikace se zobrazí následující chybová zpráva:

Kompatibilitu modelu nelze zkontrolovat, protože databáze neobsahuje metadata modelu. Ujistěte se, že includeMetadataConvention byl přidán do konvencí DbModelBuilder.

Možná příčina a řešení

Pokud jste název databáze, který jste vložili do souboru Web.config, někdy používali v počítači, je možné, že databáze už obsahuje nějaké tabulky. Vyberte nový název, který se dosud v počítači nepoužíval, a změňte Web.config soubor tak, aby odkazoval na tento nový název databáze. Jako alternativu můžete existující databázi odstranit pomocí nástroje SQL Server Express Utility nebo SQL Server Management Studio Express.

Chyba SQL při pokusu skriptu o vytvoření uživatelů nebo rolí

Scenario

Používáte nasazení databáze nakonfigurované na kartě Package/Publish SQL ( Skripty SQL, které se spouští během nasazování, zahrnují příkazy Create User (Vytvořit uživatele) nebo Create Role (Vytvořit roli) a spuštění skriptu selže při spuštění těchto příkazů. Můžou se zobrazit podrobnější zprávy, například následující:

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.

Pokud k této chybě dojde, když jste nakonfigurovali nasazení databáze v průvodci publikováním webu místo na kartě Balíček/Publikování SQL , vytvořte vlákno ve fóru Konfigurace a nasazení a řešení se přidá na tuto stránku pro řešení potíží.

Možná příčina a řešení

Uživatelský účet, který používáte k nasazení, nemá oprávnění k vytváření uživatelů nebo rolí. Hostitelská společnost může například přiřadit db_datareader, db_datawriter a db_ddladmin role uživatelskému účtu, který pro vás nastaví. Ty jsou dostatečné pro vytváření většiny databázových objektů, ale ne pro vytváření uživatelů nebo rolí. Jedním ze způsobů, jak se této chybě vyhnout, je vyloučení uživatelů a rolí z nasazení databáze. Můžete to provést úpravou elementu PreSource pro automaticky vygenerovaný skript databáze tak, aby obsahoval následující atributy:

CopyAllUsers=false, CopyAllRoles=false

Informace o tom, jak upravit element PreSource v souboru projektu, najdete v tématu Postupy: Úprava nastavení nasazení v souboru projektu. Pokud uživatelé nebo role ve vývojové databázi musí být v cílové databázi, požádejte o pomoc svého poskytovatele hostingu.

SQL Server chyba časového limitu při spouštění vlastních skriptů během nasazení

Scenario

Zadali jste vlastní skripty SQL, které se mají spouštět během nasazování, a při spuštění nasazení webu vyprší jejich časový limit.

Možná příčina a řešení

Spuštění více skriptů, které mají různé režimy transakcí, může způsobit chyby časového limitu. Ve výchozím nastavení se automaticky generované skripty spouštějí v transakci, ale vlastní skripty ne. Pokud vyberete možnost Vyžádat data nebo schéma z existující databáze na kartě Package/Publish SQL a pokud přidáte vlastní skript SQL, musíte u některých skriptů změnit nastavení transakcí tak, aby všechny skripty používaly stejné nastavení transakcí. Další informace najdete v tématu Postupy: Nasazení databáze s projektem webové aplikace.

Pokud jste nakonfigurovali nastavení transakcí tak, aby všechna byla stejná, ale přesto se tato chyba zobrazovala, je možné alternativní řešení spustit skripty samostatně. V mřížce Databázové skripty na kartě Package/Publish SQL zrušte zaškrtnutí políčka Zahrnout u skriptu, který způsobuje chybu časového limitu, a pak projekt publikujte. Pak se vraťte do mřížky Databázové skripty , zaškrtněte políčko Zahrnout u daného skriptu a zrušte zaškrtnutí políček Zahrnout u ostatních skriptů. Pak projekt znovu publikujte. Tentokrát se při publikování spustí jenom vybraný vlastní skript.

Data streamu manifestu webu ještě nejsou k dispozici.

Scenario

Při instalaci balíčku pomocí souboru deploy.cmd s možností t (test) se zobrazí následující chybová zpráva:

Chyba: Data streamu sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript ještě nejsou k dispozici.

Možná příčina a řešení

Chybová zpráva znamená, že příkaz nemůže vytvořit testovací sestavu. Příkaz se ale může spustit, pokud použijete možnost y (skutečná instalace). Zpráva pouze indikuje, že došlo k problému se spuštěním příkazu v testovacím režimu.

Tato aplikace vyžaduje ManagedRuntimeVersion verze 4.0.

Scenario

Při pokusu o nasazení se zobrazí následující chybová zpráva:

Fond aplikací, který se pokoušíte použít, má vlastnost managedRuntimeVersion nastavenou na v2.0. Tato aplikace vyžaduje verzi v4.0.

Možná příčina a řešení

ASP.NET 4 není ve službě IIS nainstalovaný. Pokud je server, na který nasazujete, váš vývojový počítač a je na něm nainstalovaná sada Visual Studio 2010, je v počítači nainstalovaná ASP.NET 4, ale nemusí být nainstalovaná ve službě IIS. Na serveru, na který nasazujete, otevřete příkazový řádek se zvýšenými oprávněními a spuštěním následujících příkazů nainstalujte ASP.NET 4 ve službě IIS:

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

Nelze přetypovat Microsoft.Web.Deployment.DeploymentProviderOptions

Scenario

Při nasazování balíčku se zobrazí následující chybová zpráva:

Nelze přetypovat objekt typu Microsoft.Web.Deployment.DeploymentProviderOptions na Microsoft.Web.Deployment.DeploymentProviderOptions.

Možná příčina a řešení

Pokoušíte se nasadit ze Správce služby IIS pomocí uživatelského rozhraní Nasazení webu 1.1 na server, který má nasazení webu 2.0 nainstalována. Pokud k nasazení importem balíčku používáte Nástroj pro vzdálenou správu služby IIS, zaškrtněte při navazování připojení dialogové okno Nové funkce k dispozici . (Toto dialogové okno se může zobrazit pouze jednou při prvním navázání připojení. Pokud chcete připojení vymazat a začít znovu, zavřete Správce služby IIS a znovu ho spusťte zadáním příkazu inetmgr /reset na příkazovém řádku.) Pokud je jedna z uvedených funkcí uživatelské rozhraní pro nasazení webu a má číslo verze nižší než 8, může mít server, na který nasazujete, nainstalované verze nasazení webu 1.1 i 2.0. Pro nasazení z klienta, který má nainstalovanou verzi 2.0, musí být na serveru nainstalována pouze verze Nasazení webu 2.0. Pokud chcete tento problém vyřešit, budete muset kontaktovat svého poskytovatele hostingu.

Nelze načíst nativní komponenty SQL Server Compact

Scenario

Při spuštění nasazené lokality se zobrazí následující chybová zpráva:

Nelze načíst nativní součásti SQL Server Compact odpovídající ADO.NET zprostředkovatele verze 8482. Nainstalujte správnou verzi SQL Server Compact. Další podrobnosti najdete v článku znalostní báze 974247.

Možná příčina a řešení

Nasazený web nemá podsložky amd64 a x86 s nativními sestaveními ve složce bin aplikace. V počítači s nainstalovanými SQL Server Compact jsou nativní sestavení umístěna ve složce C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private. Nejlepší způsob, jak dostat správné soubory do správných složek v projektu sady Visual Studio, je nainstalovat balíček NuGet SqlServerCompact. Instalace balíčku přidá skript po sestavení pro zkopírování nativních sestavení do amd64 a x86. Aby se ale daly nasadit, musíte je do projektu zahrnout ručně. Další informace najdete v kurzu Nasazení SQL Server Compact.

Chyba Cesta není platná po nasazení aplikace Entity Framework Code First

Scenario

Nasadíte aplikaci, která používá Migrace Entity Framework Code First, a systém DBMS, například SQL Server Compact který ukládá svou databázi do souboru ve složce App_Data. Nakonfigurovali jste Migrace Code First k vytvoření databáze po prvním nasazení. Při spuštění aplikace se zobrazí chybová zpráva podobná následujícímu příkladu:

Cesta není platná. Zkontrolujte adresář databáze. [Cesta = c:\inetpub\wwwroot\App_Data\DatabaseName.sdf ]

Možná příčina a řešení

Code First se pokouší vytvořit databázi, ale složka App_Data neexistuje. Buď jste při nasazení neměli ve složce App_Data žádné soubory, nebo jste vybrali Možnost Vyloučit App_Data na kartě Zabalit/publikovat web v aplikaci Project okno Vlastnosti. Proces nasazení nevytvoří na serveru složku, pokud ve složce nejsou žádné soubory, které by se na server zkopírovaly. Pokud už máte databázi v lokalitě nastavenou, proces nasazení odstraní soubory a samotnou složku App_Data , pokud jste v profilu publikování vybrali Možnost Odebrat další soubory v cíli . Problém vyřeší App_Data te tak, že do složky App_Data umístíte zástupný soubor, například .txt, a znovu ho nasadíte.

"Objekt COM, který byl oddělen od jeho základní RCW nelze použít."

Scenario

Úspěšně jste nasadili aplikaci publikování jedním kliknutím a pak se vám začne zobrazovat tato chyba:

Úloha nasazení webu selhala. (Požadavek na adresu URL<https://serverurl.com/msdeploy.axd?site=sitename> vzdáleného agenta nelze dokončit.)
Požadavek na adresu URL<https://url/msdeploy.axd?site=sitename> vzdáleného agenta nelze dokončit.
Žádost byla přerušena: Žádost byla zrušena.
Objekt COM, který byl oddělen od jeho základní RCW nelze použít.

Možná příčina a řešení

K vyřešení této chyby se obvykle vyžaduje zavření a restartování sady Visual Studio.

Nasazení selže, protože přihlašovací údaje uživatele použité k publikování nemají nastavenou autoritu ACL.

Scenario

Publikování selže s chybou, která značí, že nemáte oprávnění k nastavení oprávnění ke složce (uživatelský účet, který používáte, nemá oprávnění setACL).

Možná příčina a řešení

Ve výchozím nastavení sada Visual Studio nastaví oprávnění ke čtení v kořenové složce webu a oprávnění k zápisu do složky App_Data. Pokud víte, že výchozí oprávnění ke složkám webu jsou správná a není nutné je nastavit, můžete toto chování zakázat přidáním <IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> do souboru profilu publikování (pro ovlivnění jednoho profilu) nebo do souboru wpp.targets (pro ovlivnění všech profilů). Informace o úpravách těchto souborů najdete v tématu Postupy: Úprava nastavení nasazení v souborech profilu (.pubxml).

Chyby odepření přístupu při pokusu aplikace o zápis do složky aplikace

Scenario

Aplikace při pokusu o vytvoření nebo úpravu souboru v jedné ze složek aplikace dojde k chybám, protože pro tuto složku nemá oprávnění k zápisu.

Možná příčina a řešení

Ve výchozím nastavení sada Visual Studio nastaví oprávnění ke čtení v kořenové složce webu a oprávnění k zápisu do složky App_Data. Pokud vaše aplikace potřebuje přístup k zápisu do podsložky, můžete pro tuto složku nastavit oprávnění, jak je znázorněno v kurzech Nastavení oprávnění ke složce a Nasazení do produkčního prostředí v této sérii. Pokud vaše aplikace potřebuje přístup k zápisu do kořenové složky webu, musíte jí zabránit v nastavení přístupu jen pro čtení v kořenové složce přidáním <IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> do souboru profilu publikování (aby ovlivnila jeden profil) nebo do souboru wpp.targets (pro ovlivnění všech profilů). Informace o úpravách těchto souborů najdete v tématu Postupy: Úprava nastavení nasazení v souborech profilu (.pubxml).

Chyba konfigurace – atribut targetFramework odkazuje na verzi, která je novější než nainstalovaná verze rozhraní .NET Framework.

Scenario

Úspěšně jste publikovali webový projekt, který cílí na ASP.NET 4.5, ale při spuštění aplikace (s režimem customErrors nastaveným na vypnuto v souboru Web.config) se zobrazí následující chyba:

Atribut targetFramework v elementu <kompilace> souboru Web.config se používá pouze pro cílovou verzi 4.0 a novější rozhraní .NET Framework (například '<compilation targetFramework="4.0">). Atribut targetFramework aktuálně odkazuje na verzi, která je novější než nainstalovaná verze rozhraní .NET Framework. Zadejte platnou cílovou verzi rozhraní .NET Framework nebo nainstalujte požadovanou verzi rozhraní .NET Framework.

Pole Zdrojová chyba na chybové stránce zvýrazní následující řádek z Web.config jako příčinu chyby:

<compilation targetFramework="4.5" />

Možná příčina a řešení

Server nepodporuje ASP.NET 4.5. Obraťte se na poskytovatele hostingu a zjistěte, kdy a jestli je možné přidat podporu pro ASP.NET 4.5. Pokud upgrade serveru není možné, musíte místo toho nasadit webový projekt, který cílí na ASP.NET 4 nebo starší.

Pokud nasadíte webový projekt ASP.NET 4 nebo starší do stejného cíle, zaškrtněte políčko Odebrat další soubory v cíli na kartě Nastavení v průvodci Publikovat web . Pokud nevyberete Možnost Odebrat další soubory v cíli, bude se dál zobrazovat stránka Chyba konfigurace.

Okna vlastnosti projektu obsahují rozevírací seznam Cílové rozhraní, ale tento problém nemůžete vyřešit tak, že ho změníte z rozhraní .NET Framework 4.5 na .NET Framework 4. Pokud změníte cílovou architekturu na starší verzi rozhraní, projekt bude stále obsahovat odkazy na sestavení novější verze architektury a nebude spuštěn. Tyto odkazy musíte změnit ručně nebo vytvořit nový projekt, který cílí na rozhraní .NET Framework 4 nebo starší. Další informace najdete v tématu Cílení rozhraní .NET Framework na weby.

Chyby střední důvěryhodnosti

Scenario

Při spuštění aplikace v produkčním prostředí se zobrazí chyba související se střední důvěryhodností.

Možná příčina a řešení

Mnoho poskytovatelů hostingu třetích stran spouští váš web se střední důvěryhodností, což znamená, že existuje několik věcí, které není povoleno dělat. Například kód aplikace nemá přístup k registru Systému Windows a nemůže číst ani zapisovat soubory, které jsou mimo hierarchii složek vaší aplikace. Ve výchozím nastavení běží vaše aplikace na místním počítači v plné důvěryhodnosti , což znamená, že aplikace může být schopná dělat věci, které by selhaly, když ji nasadíte do produkčního prostředí.

Pokud chcete řešit potíže, můžete aplikaci nakonfigurovat tak, aby běžela v místním prostředí služby IIS se střední důvěryhodností. Chcete-li to provést, otevřete soubor aplikaceWeb.config a přidejte prvek důvěryhodnosti do elementu system.web , jak je znázorněno v tomto příkladu.

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

Aplikace teď bude ve službě IIS běžet se střední důvěryhodností i na místním počítači.

To nedělejte, pokud nasazujete do Azure App Service, protože Azure nevyžaduje střední důvěryhodnost. V době psaní tohoto kurzu v únoru 2012 způsobí použití této metody spuštění aplikace ve střední důvěryhodnosti chybu v Azure.

Pokud používáte Migrace Entity Framework Code First a provádíte nasazení u poskytovatele hostingu, který spouští vaši aplikaci se střední důvěryhodností, ujistěte se, že máte nainstalovanou verzi 5.0 nebo novější. V Entity Frameworku verze 4.3 vyžadují migrace úplnou důvěryhodnost, aby bylo možné aktualizovat schéma databáze.

Chyba HTTP 404.17 Nenalezena

Scenario

Při spuštění nasazené lokality na vývojovém počítači ve službě IIS se zobrazí následující chybová zpráva, že server nemůže zpracovat Default.aspx:

Chyba HTTP 404.17 – Nenalezena

Požadovaný obsah se zdá být skript a obslužná rutina statického souboru ho nebude obsluhovat.

Možná příčina a řešení

ASP.NET 4.5 nemusí být v počítači nainstalována. Projděte si postup v kurzu Nasazení do služby IIS jako testovacího prostředí v této sérii, který vysvětluje, jak nainstalovat ASP.NET 4.5.