ASP.NET webes üzembe helyezés a Visual Studióval: Hibaelhárítás

készítette : Tom Dykstra

Starter Project letöltése

Ez az oktatóanyag-sorozat bemutatja, hogyan helyezhet üzembe ASP.NET webalkalmazásokat az Azure App Service Web Appsben vagy egy külső szolgáltatón a Visual Studio 2012 vagy a Visual Studio 2010 használatával. A sorozatról további információt a sorozat első oktatóanyagában talál.

Ez a lap néhány gyakori problémát ismertet, amelyek ASP.NET webalkalmazás Visual Studio használatával történő üzembe helyezésekor merülhetnek fel. Mindegyiknél egy vagy több lehetséges ok és megfelelő megoldás érhető el.

A bemutatott forgatókönyvek az Azure-ra és a külső szolgáltatókra is érvényesek. További információ a webalkalmazások Azure App Service-ben történő hibaelhárításáról:

Kiszolgálóhiba a(z) "/" alkalmazásban – Az aktuális egyéni hibabeállítások megakadályozzák, hogy a hiba részletei távolról megtekintve legyenek

Scenario

Miután üzembe helyez egy webhelyet egy távoli gazdagépen, hibaüzenetet kap, amely megemlíti a customErrors beállítást a Web.config fájlban, de nem mutatja a hiba valós okát.

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

Lehetséges ok és megoldás

Alapértelmezés szerint ASP.NET csak akkor jelenít meg részletes hibainformációkat, ha a webalkalmazás a helyi számítógépen fut. Általában nem szeretne részletes hibainformációkat megjeleníteni, ha a webalkalmazás nyilvánosan elérhető az interneten keresztül, mert előfordulhat, hogy a hackerek felhasználhatják ezeket az információkat az alkalmazás biztonsági réseinek megkereséséhez. Amikor azonban egy webhelyet vagy frissítéseket helyez üzembe egy webhelyen, néha hiba történik, és a tényleges hibaüzenetet kell kapnia.

Ha engedélyezni szeretné, hogy az alkalmazás részletes hibaüzeneteket jelenítsen meg, amikor a távoli gazdagépen fut, szerkessze a Web.config fájlt a customErrors mód kikapcsolásához, az alkalmazás ismételt üzembe helyezéséhez, majd futtassa újra az alkalmazást:

  1. Ha az alkalmazás Web.config fájlban van egy customErrors elem a system.web elemben, módosítsa a módattribútumot "ki" értékre. Ellenkező esetben adjon hozzá egy customErrors elemet a system.web elemhez a "off" módattribútummal, ahogy az alábbi példában látható:

    <configuration>
      <system.web>
        <customErrors mode="off"/>
      </system.web>
    </configuration>
    
  2. Az alkalmazás üzembe helyezése.

  3. Futtassa az alkalmazást, és ismételje meg a hibát okozó korábbi lépéseket. Most már láthatja, hogy mi a tényleges hibaüzenet.

  4. Ha megoldotta a hibát, állítsa vissza az eredeti customErrors beállítást, és telepítse újra az alkalmazást.

Nem hozható létre vagy nem készíthető árnyékmásolat a "ContosoUniversity"-ból, ha a fájl már létezik.

Scenario

Amikor egy projektet próbál futtatni a Visual Studióban, hibaüzenet jelenik meg az alábbi példához hasonló üzenettel:

Kiszolgálóhiba a(z) "/" alkalmazásban. Nem hozható létre vagy készíthető árnyékmásolat a(z) 'ContosoUniversity'-ról, ha a fájl már létezik.

Lehetséges ok és megoldás

Várjon egy percet, és frissítse a böngészőt, vagy fordítsa újra a webhelyet és próbálja újra futtatni.

Hozzáférés megtagadva az SQL Server Compact-t használó weblapon

Scenario

Amikor SQL Server Compact-t használó webhelyet helyez üzembe, és futtat egy lapot az adatbázist elérő üzembe helyezett helyen, a következő hibaüzenet jelenik meg:

Hozzáférés megtagadva. (Kivétel a HRESULT-ból: 0x80070005 (E_ACCESSDENIED))

Lehetséges ok és megoldás

A kiszolgálón lévő NETWORK SERVICE-fióknak képesnek kell lennie az SQL Service Compact natív bináris fájljainak olvasására, amelyek a bin\amd64 vagy bin\x86 mappában találhatók, de nem rendelkeznek olvasási engedélyekkel ezekhez a mappákhoz. Állítsa be az olvasási engedélyt a NETWORK SERVICE-hez a bin mappában, és győződjön meg arról, hogy az engedélyeket kiterjeszti az almappákra.

Nem olvasható be a konfigurációs fájl, mert nincs elegendő engedély

Scenario

Ha a Visual Studio közzétételi gombjára kattintva üzembe szeretne helyezni egy alkalmazást az IIS-ben a helyi gépen, a közzététel meghiúsul, és a Kimenet ablakban az alábbihoz hasonló hibaüzenet jelenik meg:

Hiba történt a "MACHINE/REDIRECTION" IIS-konfigurációs fájl olvasásakor. A műveletet végrehajtó identitás... Hiba: Nem olvasható be a konfigurációs fájl, mert nincs megfelelő engedély.

Lehetséges ok és megoldás

Ha egykattintásos közzétételt szeretne használni az IIS-ben a helyi gépen, rendszergazdai engedélyekkel kell futtatnia a Visual Studiót. Zárja be a Visual Studiót, és indítsa újra rendszergazdai engedélyekkel.

Nem sikerült csatlakozni a célszámítógéphez... A megadott folyamat használata

Scenario

Amikor egy alkalmazás üzembe helyezéséhez a Visual Studio közzétételi gombjára kattint, a közzététel meghiúsul, és a Kimenet ablakban az alábbihoz hasonló hibaüzenet jelenik meg:

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.

Lehetséges ok és megoldás

A proxykiszolgáló megszakítja a célkiszolgálóval folytatott kommunikációt. A Windows vezérlőpulton vagy az Internet Explorerben válassza az Internetbeállítások lehetőséget , és válassza a Kapcsolatok lapot. Az Internet tulajdonságai párbeszédpanelen kattintson a LAN-beállítások elemre. A Helyi hálózat (LAN) beállításai párbeszédpanelen törölje a jelet az Automatikus észlelés beállítás jelölőnégyzetből. Ezután kattintson ismét a közzététel gombra.

Ha a probléma továbbra is fennáll, forduljon a rendszergazdához, és állapítsa meg, hogy mit lehet tenni a proxy- vagy tűzfalbeállításokkal. A probléma azért fordul elő, mert a Web Deploy nem szabványos portot használ a Web Management Service üzembe helyezéséhez (8172); más kapcsolatok esetén a Web Deploy a 80-at használja. Amikor külső szolgáltatónál helyez üzembe egy szolgáltatást, általában a Web Management Service-t használja.

Az alapértelmezett .NET 4.0 alkalmazáskészlet nem létezik

Scenario

Amikor a .NET-keretrendszer 4-et igénylő alkalmazást helyez üzembe, a következő hibaüzenet jelenik meg:

Az alapértelmezett .NET 4.0 alkalmazáskészlet nem létezik, vagy az alkalmazás nem adható hozzá. Ellenőrizze, hogy a ASP.NET 4.0 telepítve van-e ezen a gépen.

Lehetséges ok és megoldás

ASP.NET 4 nincs telepítve az IIS-ben. Ha a központilag telepített kiszolgáló a fejlesztői számítógép, és a Visual Studio 2010 telepítve van rajta, a ASP.NET 4 telepítve van a számítógépen, de lehet, hogy nem az IIS-ben van telepítve. A kiszolgálón, amelyen üzembe helyez, nyisson meg egy rendszergazda jogú parancssort, és telepítse a ASP.NET 4-et az IIS-ben az alábbi parancsok futtatásával:

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

Előfordulhat, hogy manuálisan is be kell állítania az alapértelmezett alkalmazáskészlet .NET-keretrendszer-verzióját. További információkért tekintse meg az IIS-ben való üzembe helyezés tesztkörnyezetként című oktatóanyagát ebben a sorozatban.

Az inicializálási sztring formátuma nem felel meg a 0. indextől kezdődő specifikációnak.

Scenario

Miután üzembe helyez egy alkalmazást egy kattintással, az adatbázishoz hozzáférő lap futtatásakor a következő hibaüzenet jelenik meg:

Az inicializálási sztring formátuma nem felel meg a 0. indextől kezdődő specifikációnak.

Lehetséges ok és megoldás

Nyissa meg a Web.config fájlt az üzembe helyezett helyen, és ellenőrizze, hogy a kapcsolati sztring $(ReplaceableToken_értékei a következő példához hasonlóan kezdődnek-e:

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

Ha a kapcsolati sztringek a példához hasonlóan néznek ki, szerkessze a projektfájlt, és adja hozzá a következő tulajdonságot az összes buildkonfigurációhoz tartozó PropertyGroup elemhez:

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>

Ezután helyezze újra üzembe az alkalmazást.

HTTP 500 belső kiszolgálóhiba

Scenario

Az üzembe helyezett hely futtatásakor a következő hibaüzenet jelenik meg a hiba okára vonatkozó konkrét információk nélkül:

500-os HTTP-hiba – Belső kiszolgálóhiba.

Lehetséges ok és megoldás

Az 500 hiba számos oka lehet, de az oktatóanyagok követésének egyik lehetséges oka az, hogy egy XML-elemet rossz helyre helyezett az egyik Web.config átalakítási fájlba. Ez a hiba például akkor jelenik meg, ha az átalakítást, amely egy <location> elemet szúr be, a <system.web> alá helyezi, ahelyett hogy közvetlenül a <konfiguráció> alá helyezné. Az Web.config átalakítás előnézeti funkciójával ellenőrizheti, hogy az átalakítások a kívánt módon működnek-e. Ha helytelenül kódolt átalakítást talál, a megoldás az átalakítási fájl javítása és újbóli üzembe helyezése. Ha egy hiba nem egyértelmű, próbáljon meg megjegyzéseket fűzni az átalakításokhoz, és újból üzembe helyezni, hogy kiderüljön, melyik okozza az 500-ás hibát.

HTTP 500.21 belső kiszolgálóhiba

Scenario

Az üzembe helyezett hely futtatásakor a következő hibaüzenet jelenik meg:

HTTP-hiba: 500.21 – Belső kiszolgálóhiba. A "PageHandlerFactory-Integrated" kezelő hibás "ManagedPipelineHandler" modullal rendelkezik a modullistában.

Lehetséges ok és megoldás

Az üzembe helyezett webhely ASP.NET 4-et céloz meg, de az ASP.NET 4 nincs regisztrálva az IIS-ben a kiszolgálón. A kiszolgálón nyisson meg egy rendszergazda jogú parancssort, és regisztrálja az ASP.NET 4-et az alábbi parancsok futtatásával:

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

Előfordulhat, hogy manuálisan is be kell állítania az alapértelmezett alkalmazáskészlet .NET-keretrendszer-verzióját. További információkért tekintse meg az IIS-ben való üzembe helyezés tesztkörnyezetként című oktatóanyagát ebben a sorozatban.

Nem sikerült megnyitni az SQL Server Express Database-adatbázist a App_Data

Scenario

Frissítette a Web.config fájlkapcsolati sztringet, hogy .mdf fájlként mutasson egy SQL Server Express-adatbázisra a App_Data mappában, és az alkalmazás első futtatásakor a következő hibaüzenet jelenik meg:

System.Data.SqlClient.SqlException: A bejelentkezés által kért "DatabaseName" adatbázis nem nyitható meg. A bejelentkezés sikertelen volt.

Lehetséges ok és megoldás

A .mdf fájl neve nem egyezik meg a számítógépen valaha is létező SQL Server Express-adatbázis nevével, még akkor sem, ha törölte a korábban meglévő adatbázis .mdf fájlját. Módosítsa a .mdf fájl nevét olyan névre, amelyet soha nem használtak adatbázisnévként, és módosítsa a Web.config fájlt az új név használatára. Alternatív megoldásként az SQL Server Management Studio Express használatával törölheti a korábban meglévő SQL Server Express-adatbázisokat.

A modellkompatibilitás nem ellenőrizhető

Scenario

Frissítette a Web.config fájlkapcsolati sztringet, hogy egy új SQL Server Express-adatbázisra mutasson, és az alkalmazás első futtatásakor a következő hibaüzenet jelenik meg:

A modellkompatibilitás nem ellenőrizhető, mert az adatbázis nem tartalmaz modell metaadatokat. Győződjön meg arról, hogy az IncludeMetadataConvention hozzá lett adva a DbModelBuilder konvenciókhoz.

Lehetséges ok és megoldás

Ha a Web.config fájlban megadott adatbázisnevet korábban már használták a számítógépen, előfordulhat, hogy egy adatbázis már létezik néhány táblával együtt. Válasszon ki egy új nevet, amelyet korábban nem használt a számítógépen, és módosítsa a Web.config fájlt úgy, hogy az új adatbázisnév használatára mutasson. Másik lehetőségként az SQL Server Express Utility vagy az SQL Server Management Studio Express használatával törölheti a meglévő adatbázist.

SQL-hiba, amikor egy szkript felhasználókat vagy szerepköröket próbál létrehozni

Scenario

A Csomag/Közzététel SQL lapon konfigurált adatbázis-telepítést használja, az üzembe helyezés során futó SQL-szkriptek tartalmazzák a Felhasználó létrehozása vagy a Szerepkör létrehozása parancsokat, és a parancsok végrehajtása sikertelen, amikor ezeket a parancsokat futtatják. Részletesebb üzeneteket is láthat, például a következőket:

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.

Ha ez a hiba akkor fordul elő, ha az adatbázis üzembe helyezését a Közzétételi web varázslóban konfigurálta a Csomag/közzététel SQL lap helyett, hozzon létre egy szálat a Konfiguráció és üzembe helyezés fórumban, és a megoldás hozzá lesz adva ehhez a hibaelhárítási laphoz.

Lehetséges ok és megoldás

Az üzembe helyezés végrehajtásához használt felhasználói fiók nem rendelkezik felhasználók vagy szerepkörök létrehozására vonatkozó engedéllyel. Az üzemeltető vállalat például hozzárendelheti a db_datareader, db_datawriter és db_ddladmin szerepköröket az Ön számára beállított felhasználói fiókhoz. Ezek elegendőek a legtöbb adatbázis-objektum létrehozásához, de nem a felhasználók vagy szerepkörök létrehozásához. A hiba elkerülésének egyik módja, ha kizárja a felhasználókat és a szerepköröket az adatbázis-telepítésből. Ehhez szerkessze az adatbázis automatikusan létrehozott szkriptjének PreSource elemét, hogy az tartalmazza a következő attribútumokat:

CopyAllUsers=false, CopyAllRoles=false

További információ a projektfájl PreSource elemének szerkesztéséről : Útmutató: Üzembehelyezési beállítások szerkesztése a projektfájlban. Ha a fejlesztői adatbázis felhasználóinak vagy szerepköreinek a céladatbázisban kell lenniük, forduljon a szolgáltatóhoz segítségért.

Az SQL Server időtúllépési hibája egyéni szkriptek futtatásakor az üzembe helyezés során

Scenario

Az üzembe helyezés során saját SQL-szkripteket adott meg, és amikor a Web Deploy futtatja őket, a szkriptek időtúllépést szenvednek.

Lehetséges ok és megoldás

Több különböző tranzakciós móddal rendelkező szkript futtatása időtúllépési hibákat okozhat. Alapértelmezés szerint az automatikusan létrehozott szkriptek tranzakcióban futnak, de az egyéni szkriptek nem. Ha a Csomag/Közzététel SQL lapon egy meglévő adatbázisból választja ki a Lekérési adatokat és/vagy sémát, és ha egyéni SQL-szkriptet ad hozzá, módosítania kell bizonyos szkriptek tranzakciós beállításait, hogy az összes szkript ugyanazokat a tranzakcióbeállításokat használja. További információ : Adatbázis üzembe helyezése webalkalmazás-projekttel.

Ha úgy konfigurálta a tranzakciós beállításokat, hogy mindegyik azonos legyen, de továbbra is megkapja ezt a hibát, lehetséges megkerülő megoldás a szkriptek külön futtatása. A Csomag/Közzététel SQL lapon az Adatbázisszkriptek rácson törölje az Időtúllépési hibát okozó szkript Belefoglalás jelölőnégyzetének jelölését, majd tegye közzé a projektet. Ezután lépjen vissza az Adatbázis-szkriptek rácsba, jelölje be a szkript Belefoglalás jelölőnégyzetét, és törölje a jelet a többi szkript Belefoglalás jelölőnégyzeteiből. Ezután tegye közzé ismét a projektet. A közzétételkor ezúttal csak a kijelölt egyéni szkript fut.

A webhelymanifeszt adatok streamelése még nem érhető el

Scenario

Ha egy csomagot a deploy.cmd fájllal telepít a t (teszt) beállítással, a következő hibaüzenet jelenik meg:

Hiba: A sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' streamadatai még nem érhetők el.

Lehetséges ok és megoldás

A hibaüzenet azt jelenti, hogy a parancs nem tud tesztjelentést készíteni. A parancs azonban futhat, ha az y (tényleges telepítés) lehetőséget használja. Az üzenet csak azt jelzi, hogy probléma van a parancs tesztelési módban való futtatásával.

Ehhez az alkalmazáshoz a ManagedRuntimeVersion 4.0-s verziója szükséges

Scenario

Az üzembe helyezéskor a következő hibaüzenet jelenik meg:

A használni kívánt alkalmazáskészletben a "managedRuntimeVersion" tulajdonság a "v2.0" értékre van állítva. Ehhez az alkalmazáshoz a "v4.0" szükséges.

Lehetséges ok és megoldás

ASP.NET 4 nincs telepítve az IIS-ben. Ha a központilag telepített kiszolgáló a fejlesztői számítógép, és a Visual Studio 2010 telepítve van rajta, a ASP.NET 4 telepítve van a számítógépen, de lehet, hogy nem az IIS-ben van telepítve. A kiszolgálón, amelyen üzembe helyez, nyisson meg egy rendszergazda jogú parancssort, és telepítse a ASP.NET 4-et az IIS-ben az alábbi parancsok futtatásával:

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

Nem sikerült leadni a Microsoft.Web.Deployment.DeploymentProviderOptions parancsot

Scenario

Csomag üzembe helyezésekor a következő hibaüzenet jelenik meg:

Nem sikerült a "Microsoft.Web.Deployment.DeploymentProviderOptions" típusú objektumot a "Microsoft.Web.Deployment.DeploymentProviderOptions" fájlba leadni.

Lehetséges ok és megoldás

Az IIS Managerből a Web Deploy 1.1 felhasználói felület használatával próbál telepíteni egy olyan kiszolgálóra, amelyre telepítve van a Web Deploy 2.0. Ha az IIS távoli felügyeleti eszközét használja a csomag importálásával történő üzembe helyezéshez, a kapcsolat létrehozásakor jelölje be az Elérhető új funkciók párbeszédpanelt. (Előfordulhat, hogy ez a párbeszédpanel csak egyszer jelenik meg a kapcsolat első létrehozásakor. A kapcsolat törléséhez és az újrakezdéséhez zárja be az IIS Managert, és indítsa újra az inetmgr /reset parancssorba való beírásával.) Ha a felsorolt funkciók egyike a Webes üzembe helyezés felhasználói felület, és a verziószáma 8-nál alacsonyabb, akkor a központilag telepített kiszolgálóra a Web Deploy 1.1-es és 2.0-s verziója is telepítve lehet. A 2.0-s verzióval rendelkező ügyfélről való üzembe helyezéshez a kiszolgálónak csak a Web Deploy 2.0-s verzióját kell telepítenie. A probléma megoldásához fel kell vennie a kapcsolatot a szolgáltatóval.

Nem lehet betölteni az SQL Server Compact natív összetevőit

Scenario

Az üzembe helyezett hely futtatásakor a következő hibaüzenet jelenik meg:

Az SQL Server Compact natív összetevői nem tölthetőek be a 8482-es verzió ADO.NET szolgáltatójának megfelelően. Telepítse az SQL Server Compact megfelelő verzióját. További részletekért tekintse meg a tudásbáziscikk 974247.

Lehetséges ok és megoldás

Az üzembe helyezett webhely nem rendelkezik az alkalmazás bin mappájában található amd64 és x86 almappákkal, amelyek a natív szerelvényeket tartalmazzák. Az SQL Server Compact-ra telepített számítógépen a natív szerelvények a C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private fájlban találhatók. A Megfelelő fájlok Visual Studio-projektben a megfelelő mappákba való beolvasásának legjobb módja a NuGet SqlServerCompact csomag telepítése. A csomagtelepítés hozzáad egy build utáni szkriptet a natív szerelvények amd64-be és x86-ba másolásához. Ahhoz azonban, hogy ezeket üzembe helyezhesse, manuálisan kell felvennie őket a projektbe. További információ: Az SQL Server Compact üzembe helyezése oktatóanyag.

"Az elérési út érvénytelen" hiba egy Entity Framework Code First-alkalmazás üzembe helyezése után

Scenario

Az Entity Framework Code First Migrationst használó alkalmazást és egy olyan ADATBÁZISMS-t( például AZ SQL Server Compactot) helyez üzembe, amely az adatbázist egy fájlban tárolja a App_Data mappában. A Code First Migrations úgy van konfigurálva, hogy az adatbázist az első üzembe helyezés után hozza létre. Az alkalmazás futtatásakor a következő példához hasonló hibaüzenet jelenik meg:

Az elérési út érvénytelen. Ellenőrizze az adatbázis könyvtárát. [Path = c:\inetpub\wwwroot\App_Data\DatabaseName.sdf ]

Lehetséges ok és megoldás

A Code First megpróbálja létrehozni az adatbázist, de a App_Data mappa nem létezik. Vagy nem volt fájl a App_Data mappában az üzembe helyezéskor, vagy a Projekt tulajdonságai ablak Csomag/közzététel Web lapján az App_Data kizárása lehetőséget választotta. Az üzembe helyezési folyamat nem hoz létre mappát a kiszolgálón, ha a mappában nincsenek olyan fájlok, amelyeket át szeretne másolni a kiszolgálóra. Ha már beállította az adatbázist a webhelyen, az üzembe helyezési folyamat törli a fájlokat és magát a App_Data mappát, ha a közzétételi profilban a célhelyen lévő további fájlok eltávolítása lehetőséget választotta. A probléma megoldásához helyezzen el egy helyőrző fájlt, például egy .txt fájlt a App_Data mappába, győződjön meg arról, hogy nincs kiválasztva a Kizárás App_Data , és helyezze újra üzembe.

"A mögöttes RCW-től elválasztott COM-objektum nem használható."

Scenario

Sikeresen használta az egykattintásos közzétételt az alkalmazás üzembe helyezéséhez, majd a következő hibaüzenet jelenik meg:

A webes üzembe helyezési feladat nem sikerült. (A távoli ügynök URL-címére<https://serverurl.com/msdeploy.axd?site=sitename> irányuló kérés nem fejezhető be.)
A távoli ügynök URL-címére<https://url/msdeploy.axd?site=sitename> irányuló kérés nem fejezhető be.
A kérés megszakadt: A kérés törölve lett.
A mögöttes RCW-től elválasztott COM-objektum nem használható.

Lehetséges ok és megoldás

A Visual Studio bezárása és újraindítása általában csak a hiba megoldásához szükséges.

Az üzembe helyezés meghiúsul, mert a közzétételhez használt felhasználói hitelesítő adatoknak nincs setACL jogosultsága.

Scenario

A közzététel olyan hibával meghiúsul, amely azt jelzi, hogy nincs jogosultsága a mappaengedélyek beállítására (a használt felhasználói fiók nem rendelkezik setACL-szolgáltatóval).

Lehetséges ok és megoldás

Alapértelmezés szerint a Visual Studio beállítja az olvasási engedélyeket a webhely gyökérmappáján, és írási engedélyeket állít be a App_Data mappára. Ha tudja, hogy a webhelymappák alapértelmezett engedélyei helyesek, és nem szükséges beállítani, letilthatja ezt a viselkedést úgy, hogy hozzáadja< az IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> parancsot a közzétételi profilfájlhoz (egyetlen profilt érintve), vagy a wpp.targets fájlhoz (az összes profilra hatással van). A fájlok szerkesztésével kapcsolatos további információkért tekintse meg a Telepítési beállítások szerkesztése a Profilfájlok (.pubxml) fájlban című témakört.

Hozzáférés megtagadási hibák, amikor az alkalmazás megpróbál írni egy alkalmazás könyvtárába.

Scenario

Az alkalmazás hibát jelez, ha egy fájlt próbál létrehozni vagy szerkeszteni az egyik alkalmazásmappában, mert nem rendelkezik írási jogosultságokkal az adott mappához.

Lehetséges ok és megoldás

Alapértelmezés szerint a Visual Studio beállítja az olvasási engedélyeket a webhely gyökérmappáján, és írási engedélyeket állít be a App_Data mappára. Ha az alkalmazásnak írási hozzáférésre van szüksége egy almappához, beállíthatja a szükséges engedélyeket a mappa jogosultságainak beállítása és az éles környezetbe történő telepítés e sorozat oktatóanyagaiban bemutatott módon. Ha az alkalmazásnak írási hozzáférésre van szüksége a webhely gyökérmappájához, meg kell akadályoznia, hogy írásvédett hozzáférést állítson be a gyökérmappán. Ehhez adja hozzá <az IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> parancsot a közzétételi profilfájlhoz (egyetlen profil befolyásolásához) vagy a wpp.targets fájlhoz (az összes profilra való hatás érdekében). A fájlok szerkesztésével kapcsolatos további információkért tekintse meg a Telepítési beállítások szerkesztése a Profilfájlok (.pubxml) fájlban című témakört.

Konfigurációs hiba – a targetFramework attribútum a .NET-keretrendszer telepített verziójánál későbbi verzióra hivatkozik

Scenario

Sikeresen közzétett egy webes projektet, amely a 4.5-ös ASP.NET célozza meg, de az alkalmazás futtatásakor (a customErrors mód "ki" van állítva a Web.config fájlban), a következő hibaüzenet jelenik meg:

A Web.config fájl fordítási elemében található <"targetFramework" attribútum csak a .NET-keretrendszer 4.0-s és újabb verziójának célzására szolgál (például ">fordítási targetFramework="4.0"<).> A targetFramework attribútum jelenleg a .NET-keretrendszer telepített verziójánál későbbi verzióra hivatkozik. Adja meg a .NET-keretrendszer érvényes célverzióját, vagy telepítse a .NET-keretrendszer szükséges verzióját.

A hibalap Forrás hiba mezőjében a következő sor jelenik meg a hiba okaként Web.config:

<fordítási cél targetFramework="4.5" />

Lehetséges ok és megoldás

A kiszolgáló nem támogatja a ASP.NET 4.5-ös verziót. Forduljon az üzemeltető szolgáltatóhoz, hogy megállapíthassa, mikor és hogy hozzáadható-e az ASP.NET 4.5 támogatása. Ha a kiszolgáló frissítése nem lehetőség, akkor olyan webes projektet kell üzembe helyeznie, amely ASP.NET 4 vagy korábbi verziót céloz meg.

Ha egy ASP.NET 4 vagy korábbi webes projektet helyez üzembe ugyanazon a célhelyen, jelölje be a További fájlok eltávolítása a célhelyen jelölőnégyzetet a Web közzététele varázsló Beállítások lapján. Ha nem választja a További fájlok eltávolítása a célhelyen lehetőséget, a konfigurációs hiba lap továbbra is megjelenik.

A projekt tulajdonságai ablak tartalmaz egy Cél keretrendszer legördülő listát, de ezt a problémát nem oldhatja meg, ha ezt a .NET-keretrendszer 4.5-ös verziójáról a .NET-keretrendszer 4-es verziójára módosítja. Ha a cél keretrendszert egy korábbi keretrendszerverzióra módosítja, a projekt továbbra is hivatkozni fog a későbbi keretrendszerverzió szerelvényekre, és nem fog futni. Manuálisan kell módosítania ezeket a hivatkozásokat, vagy létre kell hoznia egy új projektet, amely a .NET-keretrendszer 4-et vagy korábbi verzióit célozza. További információ: .NET Framework Targeting for Web Sites.

Közepes megbízhatósági hibák

Scenario

Amikor éles üzemmódban futtatja az alkalmazást, hibát észlel, amely a közepes szintű megbízhatósággal kapcsolatos.

Lehetséges ok és megoldás

Számos hoszt-szolgáltató közepes szintű biztonságon futtatja a webhelyet, ami azt jelenti, hogy bizonyos dolgok nem engedélyezettek. Az alkalmazáskód például nem tud hozzáférni a Windows-beállításjegyzékhez, és nem tud olyan fájlokat olvasni vagy írni, amelyek nem tartoznak az alkalmazás mappahierarchiáján. Alapértelmezés szerint az alkalmazás teljes megbízhatósági kapcsolatban fut a helyi számítógépen, ami azt jelenti, hogy az alkalmazás képes lehet olyan műveletek végrehajtására, amelyek sikertelenek lehetnek az éles környezetben való üzembe helyezéskor.

A hibaelhárításhoz konfigurálhatja, hogy az alkalmazás közepes megbízhatósági környezetben fusson a helyi IIS-környezetben. Ehhez nyissa meg az alkalmazást Web.config fájlt, és adjon hozzá egy megbízhatósági elemet a system.web elemhez, ahogyan az ebben a példában látható.

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

Az alkalmazás most már közepes megbízhatósági kapcsolattal fog futni az IIS-ben még a helyi számítógépen is.

Ne tegye ezt, ha az Azure App Service-ben helyezi üzembe, mert az Azure nem igényel közepes megbízhatóságot. Az oktatóanyag 2012 februárjában írásakor az alkalmazás közepes megbízhatósági szintű futtatásának ezzel a módszerrel történő futtatása hibát fog okozni az Azure-ban.

Ha az Entity Framework Code First Migrationst használja, és egy olyan szolgáltatónál helyezi üzembe az alkalmazást, amely közepes megbízhatósági környezetben futtatja az alkalmazást, győződjön meg arról, hogy telepítve van az 5.0-s vagy újabb verzió. Az Entity Framework 4.3-es verziójában a migrálás teljes megbízhatóságot igényel az adatbázisséma frissítéséhez.

HTTP 404.17 Nem található hiba

Scenario

Amikor futtatja az üzembe helyezett helyet a fejlesztői számítógépen az IIS-ben, a következő hibaüzenet jelenik meg, amely azt jelenti, hogy a kiszolgáló nem tudja feldolgozni Default.aspx:

HTTP-hiba: 404.17 – Nem található

A kért tartalom szkriptnek tűnik, és a statikus fájlkezelő nem fogja kiszolgálni.

Lehetséges ok és megoldás

előfordulhat, hogy ASP.NET 4.5 nincs telepítve a számítógépre. Ebben a sorozatban az Üzembe helyezés az IIS-ben tesztkörnyezetként című oktatóanyag lépéseiből megtudhatja, hogyan telepítheti ASP.NET 4.5-öt.