Udostępnij za pośrednictwem


Wdrażanie aplikacji internetowej ASP.NET za pomocą SQL Server Compact przy użyciu programu Visual Studio lub Visual Web Developer: Rozwiązywanie problemów (12 z 12)

Autor : Tom Dykstra

Pobierz projekt startowy

W tej serii samouczków pokazano, jak wdrożyć (opublikować) projekt aplikacji internetowej ASP.NET zawierający bazę danych SQL Server Compact przy użyciu programu Visual Studio 2012 RC lub Visual Studio Express 2012 RC for Web. Możesz również użyć programu Visual Studio 2010, jeśli zainstalujesz aktualizację publikowania w sieci Web. Aby zapoznać się z wprowadzeniem do serii, zobacz pierwszy samouczek z serii.

W samouczku przedstawiającym funkcje wdrażania wprowadzone po wersji RC programu Visual Studio 2012 przedstawiono sposób wdrażania wersji SQL Server innych niż SQL Server Compact oraz pokazano, jak wdrożyć w witrynach sieci Web platformy Windows Azure, zobacz temat ASP.NET Web Deployment using Visual Studio (Wdrażanie w internecie przy użyciu programu Visual Studio).

Na tej stronie opisano niektóre typowe problemy, które mogą wystąpić podczas wdrażania ASP.NET aplikacji internetowej przy użyciu programu Visual Studio. Dla każdej z nich podano co najmniej jedną możliwą przyczynę i odpowiednie rozwiązania.

Błąd serwera w aplikacji "/" — bieżące niestandardowe ustawienia błędu uniemożliwiają zdalne wyświetlanie szczegółów błędu

Scenariusz

Po wdrożeniu lokacji na hoście zdalnym zostanie wyświetlony komunikat o błędzie, który wspomina o ustawieniu customErrors w pliku Web.config, ale nie wskazuje, jaka była rzeczywista przyczyna błędu:

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żliwa przyczyna i rozwiązanie

Domyślnie ASP.NET wyświetla szczegółowe informacje o błędzie tylko wtedy, gdy aplikacja internetowa jest uruchomiona na komputerze lokalnym. Ogólnie rzecz biorąc, nie chcesz wyświetlać szczegółowych informacji o błędach, gdy aplikacja internetowa jest publicznie dostępna przez Internet, ponieważ hakerzy mogą używać tych informacji do znajdowania luk w zabezpieczeniach w aplikacji. Jednak podczas wdrażania lokacji lub aktualizacji w lokacji czasami coś pójdzie nie tak i trzeba uzyskać rzeczywisty komunikat o błędzie.

Aby umożliwić aplikacji wyświetlanie szczegółowych komunikatów o błędach podczas uruchamiania na hoście zdalnym, zmodyfikuj plik Web.config, aby ustawić customErrors tryb, ponownie wdrożyć aplikację i ponownie uruchomić aplikację:

  1. Jeśli plik Web.config aplikacji ma customErrors element w system.web elemecie, zmień mode atrybut na "wyłączone". W przeciwnym razie dodaj customErrors element w system.web elemecie z atrybutem mode ustawionym na "off", jak pokazano w poniższym przykładzie:

    <configuration>
      <system.web>
        <customErrors mode="off"/>
      </system.web>
    </configuration>
    
  2. Wdrażanie aplikacji.

  3. Uruchom aplikację i powtórz wszystko, co wcześniej spowodowało wystąpienie błędu. Teraz możesz zobaczyć, jaki jest rzeczywisty komunikat o błędzie.

  4. Po rozwiązaniu błędu przywróć oryginalne customErrors ustawienie i ponownie wdróż aplikację.

Odmowa dostępu na stronie sieci Web korzystającej z SQL Server Compact

Scenariusz

Podczas wdrażania lokacji korzystającej z SQL Server Compact i uruchomienia strony w wdrożonej lokacji, która uzyskuje dostęp do bazy danych, zostanie wyświetlony następujący komunikat o błędzie:

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

Możliwa przyczyna i rozwiązanie

Konto USŁUGI SIECIOWEJ na serwerze musi mieć możliwość odczytu natywnych plików binarnych usługi SQL Service Compact znajdujących się w folderze bin\amd64 lub bin\x86 , ale nie ma uprawnień do odczytu dla tych folderów. Ustaw uprawnienie do odczytu dla usługi SIECIOWEJ w folderze bin , aby rozszerzyć uprawnienia do podfolderów.

Nie można odczytać pliku konfiguracji z powodu niewystarczających uprawnień

Scenariusz

Po kliknięciu przycisku publikowania programu Visual Studio w celu wdrożenia aplikacji w usługach IIS na komputerze lokalnym publikowanie zakończy się niepowodzeniem, a w oknie Dane wyjściowe zostanie wyświetlony komunikat o błędzie podobny do następującego:

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.

Możliwa przyczyna i rozwiązanie

Aby użyć jednokrotnego publikowania w usługach IIS na komputerze lokalnym, musisz uruchomić program Visual Studio z uprawnieniami administratora. Zamknij program Visual Studio i uruchom go ponownie z uprawnieniami administratora.

Nie można nawiązać połączenia z komputerem docelowym ... Korzystanie z określonego procesu

Scenariusz

Po kliknięciu przycisku publikowania programu Visual Studio w celu wdrożenia aplikacji publikowanie zakończy się niepowodzeniem, a okno Dane wyjściowe wyświetli komunikat o błędzie podobny do następującego:

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żliwa przyczyna i rozwiązanie

Serwer proxy przerywa komunikację z serwerem docelowym. W programie Windows Panel sterowania lub w programie Internet Explorer wybierz pozycję Opcje internetowe i wybierz kartę Połączenia. W oknie dialogowym Właściwości internetowe kliknij pozycję Ustawienia sieci LAN. W oknie dialogowym Ustawienia sieci lokalnej (LAN) wyczyść pole wyboru Automatycznie wykrywaj ustawienia . Następnie ponownie kliknij przycisk publikuj.

Jeśli problem będzie się powtarzać, skontaktuj się z administratorem systemu, aby określić, co można zrobić przy użyciu ustawień serwera proxy lub zapory. Ten problem występuje, ponieważ narzędzie Web Deploy używa nie standardowego portu dla wdrożenia usługi zarządzania siecią Web (8172); w przypadku innych połączeń narzędzie Web Deploy używa portu 80. Podczas wdrażania w dostawcy hostingu innej firmy zazwyczaj używasz usługi zarządzania siecią Web.

Domyślna pula aplikacji .NET 4.0 nie istnieje

Scenariusz

Podczas wdrażania aplikacji wymagającej .NET Framework 4 zostanie wyświetlony następujący komunikat o błędzie:

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.

Możliwa przyczyna i rozwiązanie

ASP.NET 4 nie jest zainstalowany w usługach IIS. Jeśli wdrażany serwer jest komputerem dewelopera i ma zainstalowany program Visual Studio 2010, ASP.NET 4 jest zainstalowany na komputerze, ale może nie być zainstalowany w usługach IIS. Na serwerze wdrażanym w programie otwórz wiersz polecenia z podwyższonym poziomem uprawnień i zainstaluj ASP.NET 4 w usługach IIS, uruchamiając następujące polecenia:

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

Może być również konieczne ręczne ustawienie .NET Framework wersji domyślnej puli aplikacji. Aby uzyskać więcej informacji, zobacz samouczek Wdrażanie w usługach IIS jako środowisko testowe .

Format ciągu inicjowania nie jest zgodny ze specyfikacją rozpoczynającą się od indeksu 0.

Scenariusz

Po wdrożeniu aplikacji przy użyciu publikowania jednokrotnego po uruchomieniu strony, która uzyskuje dostęp do bazy danych, zostanie wyświetlony następujący komunikat o błędzie:

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

Możliwa przyczyna i rozwiązanie

Otwórz plik Web.config w wdrożonej lokacji i sprawdź, czy wartości parametrów połączenia zaczynają się od $(ReplaceableToken_, jak w poniższym przykładzie:

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

Jeśli parametry połączenia wyglądają podobnie do tego przykładu, zmodyfikuj plik projektu i dodaj następującą właściwość do PropertyGroup elementu, który jest przeznaczony dla wszystkich konfiguracji kompilacji:

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>

Następnie ponownie wdróż aplikację.

Wewnętrzny błąd serwera HTTP 500

Scenariusz

Po uruchomieniu wdrożonej witryny zostanie wyświetlony następujący komunikat o błędzie bez konkretnych informacji wskazujących przyczynę błędu:

HTTP Error 500 - Internal Server Error.

Możliwa przyczyna i rozwiązanie

Istnieje wiele przyczyn błędów 500, ale jedną z możliwych przyczyn, jeśli obserwujesz te samouczki, jest umieszczenie elementu XML w niewłaściwym miejscu w jednym z plików transformacji XML. Na przykład ten błąd zostanie wyświetlony, jeśli umieścisz przekształcenie, które wstawia <location> element w obszarze <system.web> zamiast bezpośrednio w obszarze <configuration>. Rozwiązaniem w tym przypadku jest skorygowanie pliku przekształcenia XML i ponowne wdrożenie.

Wewnętrzny błąd serwera HTTP 500.21

Scenariusz

Po uruchomieniu wdrożonej lokacji zostanie wyświetlony następujący komunikat o błędzie:

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

Możliwa przyczyna i rozwiązanie

Wdrożona witryna docelowa ASP.NET 4, ale ASP.NET 4 nie jest zarejestrowana w usługach IIS na serwerze. Na serwerze otwórz wiersz polecenia z podwyższonym poziomem uprawnień i zarejestruj ASP.NET 4, uruchamiając następujące polecenia:

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

Może być również konieczne ręczne ustawienie .NET Framework wersji domyślnej puli aplikacji. Aby uzyskać więcej informacji, zobacz samouczek Wdrażanie w usługach IIS jako środowisko testowe .

Logowanie nie powiodło się podczas otwierania bazy danych SQL Server Express w App_Data

Scenariusz

Zaktualizowano parametry połączenia pliku Web.config, aby wskazywały bazę danych SQL Server Express jako plik mdf w folderze App_Data, a po raz pierwszy uruchomisz aplikację, zostanie wyświetlony następujący komunikat o błędzie:

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

Możliwa przyczyna i rozwiązanie

Nazwa pliku mdf nie może być zgodna z nazwą żadnej bazy danych SQL Server Express, która kiedykolwiek istniała na komputerze, nawet jeśli plik mdf wcześniej istniejącej bazy danych został usunięty. Zmień nazwę pliku mdf na nazwę, która nigdy nie została użyta jako nazwa bazy danych, a następnie zmień plik Web.config , aby użyć nowej nazwy. Alternatywnie możesz użyć SQL Server Management Studio Express do usunięcia wcześniej istniejących baz danych SQL Server Express.

Nie można sprawdzić zgodności modelu

Scenariusz

Zaktualizowano parametry połączenia pliku Web.config, aby wskazywały nową bazę danych SQL Server Express i po raz pierwszy uruchomisz aplikację, zostanie wyświetlony następujący komunikat o błędzie:

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

Możliwa przyczyna i rozwiązanie

Jeśli nazwa bazy danych umieszczona w pliku Web.config była kiedykolwiek używana wcześniej na komputerze, baza danych może już istnieć z niektórymi tabelami w nim. Wybierz nową nazwę, która nie została użyta na komputerze przed i zmień plik Web.config , aby wskazać, aby użyć tej nowej nazwy bazy danych. Alternatywnie możesz użyć SQL Server Management Studio Express, aby usunąć istniejącą bazę danych.

Błąd SQL, gdy skrypt próbuje utworzyć użytkowników lub role

Scenariusz

Używasz wdrożenia bazy danych skonfigurowanego na karcie Package/Publish SQL (Tworzenie użytkownika lub Tworzenie roli), a wykonywanie skryptu kończy się niepowodzeniem po wykonaniu tych poleceń. Mogą pojawić się bardziej szczegółowe komunikaty, takie jak następujące:

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.

Jeśli ten błąd występuje podczas konfigurowania wdrożenia bazy danych w kreatorze publikowania sieci Web , a nie na karcie Package/Publish SQL( Pakiet/Publikowanie bazy danych SQL ), utwórz wątek na forum Konfiguracja i wdrożenie , a rozwiązanie zostanie dodane do tej strony rozwiązywania problemów.

Możliwa przyczyna i rozwiązanie

Konto użytkownika używane do wdrożenia nie ma uprawnień do tworzenia użytkowników ani ról. Na przykład firma hostingowa może przypisywać db_datareaderrole , db_datawriteri db_ddladmin do konta użytkownika, które konfiguruje. Są one wystarczające do tworzenia większości obiektów bazy danych, ale nie do tworzenia użytkowników lub ról. Jednym ze sposobów uniknięcia błędu jest wykluczenie użytkowników i ról z wdrożenia bazy danych. Można to zrobić, edytując PreSource element automatycznie wygenerowanego skryptu bazy danych, tak aby zawierał następujące atrybuty:

CopyAllUsers=false, CopyAllRoles=false

Aby uzyskać informacje o sposobie edytowania PreSource elementu w pliku projektu, zobacz How to: Edit Deployment Settings in the Project File (Instrukcje: edytowanie ustawień wdrożenia w pliku projektu). Jeśli użytkownicy lub role w bazie danych deweloperów muszą znajdować się w docelowej bazie danych, skontaktuj się z dostawcą hostingu, aby uzyskać pomoc.

SQL Server błąd przekroczenia limitu czasu podczas uruchamiania skryptów niestandardowych podczas wdrażania

Scenariusz

Określono niestandardowe skrypty SQL, które mają być uruchamiane podczas wdrażania, a gdy narzędzie Web Deploy je uruchamia, upłynął limit czasu.

Możliwa przyczyna i rozwiązanie

Uruchamianie wielu skryptów z różnymi trybami transakcji może powodować błędy przekroczenia limitu czasu. Domyślnie skrypty generowane automatycznie są uruchamiane w transakcji, ale skrypty niestandardowe nie. W przypadku wybrania opcji Pull data and/or schema (Ściąganie danych i/lub schematu) na karcie Package/Publish SQL (Pakiet/Publikowanie kodu SQL ), a w przypadku dodania niestandardowego skryptu SQL należy zmienić ustawienia transakcji w niektórych skryptach, aby wszystkie skrypty używały tych samych ustawień transakcji. Aby uzyskać więcej informacji, zobacz How to: Deploy a Database With a Web Application Project (Jak wdrożyć bazę danych za pomocą projektu aplikacji internetowej).

Jeśli skonfigurowano ustawienia transakcji tak, aby wszystkie te same, ale nadal otrzymuję ten błąd, możliwe obejście polega na osobnym uruchomieniu skryptów. W siatce Skrypty bazy danych na karcie Package/Publish SQL usuń zaznaczenie pola wyboru Dołącz dla skryptu, który powoduje błąd przekroczenia limitu czasu, a następnie opublikuj projekt. Następnie wróć do siatki Skrypty bazy danych , zaznacz pole wyboru Uwzględnij skrypt i wyczyść pola wyboru Uwzględnij dla innych skryptów. Następnie ponownie opublikuj projekt. Tym razem podczas publikowania zostanie uruchomiony tylko wybrany skrypt niestandardowy.

Dane strumienia manifestu witryny nie są jeszcze dostępne

Scenariusz

Podczas instalowania pakietu przy użyciu pliku deploy.cmd z opcją t (test) zostanie wyświetlony następujący komunikat o błędzie:

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

Możliwa przyczyna i rozwiązanie

Komunikat o błędzie oznacza, że polecenie nie może utworzyć raportu testowego. Jednak polecenie może zostać uruchomione, jeśli używasz y opcji (rzeczywista instalacja). Komunikat wskazuje tylko, że wystąpił problem z uruchomieniem polecenia w trybie testowym.

Ta aplikacja wymaga elementu ManagedRuntimeVersion w wersji 4.0

Scenariusz

Podczas próby wdrożenia zostanie wyświetlony następujący komunikat o błędzie:

Błąd: dane strumienia "sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' nie są jeszcze dostępne. Pula aplikacji, której próbujesz użyć, ma właściwość "managedRuntimeVersion" ustawioną na wartość "v2.0". Ta aplikacja wymaga wersji 4.0.

Możliwa przyczyna i rozwiązanie

ASP.NET 4 nie jest zainstalowany w usługach IIS. Jeśli wdrażany serwer jest komputerem dewelopera i ma zainstalowany na nim program Visual Studio 2010, ASP.NET 4 jest zainstalowany na komputerze, ale może nie być zainstalowany w usługach IIS. Na serwerze, w którym wdrażasz, otwórz wiersz polecenia z podwyższonym poziomem uprawnień i zainstaluj ASP.NET 4 w usługach IIS, uruchamiając następujące polecenia:

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

Nie można rzutować elementu Microsoft.Web.Deployment.DeploymentProviderOptions

Scenariusz

Podczas wdrażania pakietu zostanie wyświetlony następujący komunikat o błędzie:

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

Możliwa przyczyna i rozwiązanie

Próbujesz wdrożyć z Menedżera usług IIS przy użyciu interfejsu użytkownika narzędzia Web Deploy 1.1 na serwerze z zainstalowanym programem Web Deploy 2.0. Jeśli używasz narzędzia administracji zdalnej usług IIS do wdrożenia przez zaimportowanie pakietu, zaznacz okno dialogowe Nowe dostępne funkcje podczas nawiązywania połączenia. (To okno dialogowe może być wyświetlane tylko raz, gdy połączenie zostanie nawiązane po raz pierwszy. Aby wyczyścić połączenie i rozpocząć pracę, zamknij Menedżera usług IIS i uruchom je ponownie, wprowadzając polecenie inetmgr /reset w wierszu polecenia. Jeśli jedną z wymienionych funkcji jest interfejs użytkownika narzędzia Web Deploy i ma numer wersji mniejszy niż 8, wdrażany serwer może mieć zainstalowane wersje 1.1 i 2.0 narzędzia Web Deploy. Aby wdrożyć z poziomu klienta z zainstalowaną wersję 2.0, na serwerze musi być zainstalowany tylko program Web Deploy 2.0. Aby rozwiązać ten problem, musisz skontaktować się z dostawcą hostingu.

Nie można załadować składników natywnych SQL Server Compact

Scenariusz

Po uruchomieniu wdrożonej witryny zostanie wyświetlony następujący komunikat o błędzie:

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.

Możliwa przyczyna i rozwiązanie

Wdrożona witryna nie ma podfolderów amd64 i x86 z natywnymi zestawami w nich w folderze bin aplikacji. Na komputerze, na którym zainstalowano SQL Server Compact, zestawy natywne znajdują się w folderze C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private. Najlepszym sposobem na pobranie poprawnych plików do odpowiednich folderów w projekcie programu Visual Studio jest zainstalowanie pakietu NuGet SqlServerCompact. Instalacja pakietu dodaje skrypt po kompilacji w celu skopiowania natywnych zestawów do procesorów amd64 i x86. Aby można je było wdrożyć, należy je jednak ręcznie uwzględnić w projekcie. Aby uzyskać więcej informacji, zobacz samouczek Wdrażanie SQL Server Compact.

Błąd "Ścieżka jest nieprawidłowa" po wdrożeniu aplikacji Entity Framework Code First

Scenariusz

Wdrażasz aplikację, która używa migracje Code First platformy Entity Framework i systemu DBMS, takiego jak SQL Server Compact, która przechowuje swoją bazę danych w pliku w folderze App_Data. Po pierwszym wdrożeniu skonfigurowano Migracje Code First utworzenia bazy danych. Po uruchomieniu aplikacji zostanie wyświetlony komunikat o błędzie podobny do następującego przykładu:

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

Możliwa przyczyna i rozwiązanie

Program Code First próbuje utworzyć bazę danych, ale folder App_Data nie istnieje. Nie masz żadnych plików w folderze App_Data podczas wdrażania lub wybrano opcję Wyklucz App_Data na karcie Pakiet/Publikowanie w sieci Web okna Właściwości projektu . Proces wdrażania nie utworzy folderu na serwerze, jeśli na serwerze nie ma żadnych plików do skopiowania do serwera. Jeśli baza danych została już skonfigurowana w lokacji, proces wdrażania spowoduje usunięcie plików i samego folderu App_Data po wybraniu opcji Usuń dodatkowe pliki w miejscu docelowym w profilu publikowania. Aby rozwiązać ten problem, umieść plik zastępczy, taki jak plik .txt w folderze App_Data , upewnij się, że nie wybrano App_Data wykluczania i ponownego wdrażania.

"Nie można użyć obiektu COM, który został oddzielony od jego bazowego RCW."

Scenariusz

Udało Ci się pomyślnie użyć publikowania jednym kliknięciem w celu wdrożenia aplikacji, a następnie zaczniesz otrzymujeć następujący błąd:

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.

Możliwa przyczyna i rozwiązanie

Zamykanie i ponowne uruchamianie programu Visual Studio jest zwykle wymagane do rozwiązania tego błędu.

Wdrażanie kończy się niepowodzeniem, ponieważ poświadczenia użytkownika używane do publikowania nie mają ustawionego urzędu kontroli dostępu

Scenariusz

Publikowanie kończy się niepowodzeniem z powodu błędu wskazującego, że nie masz uprawnień do ustawiania uprawnień folderu (używane konto użytkownika nie ma urzędu setACL).

Możliwa przyczyna i rozwiązanie

Domyślnie program Visual Studio ustawia uprawnienia do odczytu w folderze głównym witryny i uprawnienia do zapisu w folderze App_Data. Jeśli wiesz, że domyślne uprawnienia w folderach witryny są poprawne i nie trzeba ich ustawiać, należy wyłączyć to zachowanie, dodając <wartość IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> do pliku profilu publikowania (aby wpłynąć na pojedynczy profil) lub do pliku wpp.targets (aby wpłynąć na wszystkie profile). Aby uzyskać informacje o sposobie edytowania tych plików, zobacz How to: Edit Deployment Settings in Profile (.pubxml) Files (Jak edytować ustawienia wdrożenia w plikach profilu (.pubxml).

Błędy odmowy dostępu, gdy aplikacja próbuje zapisać w folderze aplikacji

Scenariusz

Aplikacja jest błędna podczas próby utworzenia lub edytowania pliku w jednym z folderów aplikacji, ponieważ nie ma urzędu zapisu dla tego folderu.

Możliwa przyczyna i rozwiązanie

Domyślnie program Visual Studio ustawia uprawnienia do odczytu w folderze głównym witryny i uprawnienia do zapisu w folderze App_Data. Jeśli aplikacja wymaga dostępu do zapisu do podfolderu, możesz ustawić uprawnienia dla tego folderu, jak pokazano w samouczkach Ustawianie uprawnień folderu i Wdrażanie w środowisku produkcyjnym . Jeśli aplikacja wymaga dostępu do zapisu w folderze głównym witryny, musisz uniemożliwić jej ustawienie dostępu tylko do odczytu w folderze głównym przez dodanie <elementu IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> do pliku profilu publikowania (aby wpłynąć na jeden profil) lub do pliku wpp.targets (aby wpłynąć na wszystkie profile). Aby uzyskać informacje o sposobie edytowania tych plików, zobacz How to: Edit Deployment Settings in Profile (.pubxml) Files (Jak edytować ustawienia wdrożenia w plikach profilu (.pubxml).

Błąd konfiguracji — atrybut targetFramework odwołuje się do wersji nowszej niż zainstalowana wersja .NET Framework

Scenariusz

Pomyślnie opublikowano projekt internetowy przeznaczony dla ASP.NET 4.5, ale po uruchomieniu aplikacji (z trybem customErrors ustawionym na "wyłączone" w pliku Web.config) występuje następujący błąd:

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.

W polu Błąd źródłowy strony błędu wyróżniono następujący wiersz z Web.config jako przyczynę błędu:

<compilation targetFramework="4.5" />

Możliwa przyczyna i rozwiązanie

Serwer nie obsługuje ASP.NET 4.5. Skontaktuj się z dostawcą hostingu, aby określić, kiedy i kiedy można dodać obsługę ASP.NET 4.5. Jeśli uaktualnienie serwera nie jest opcją, należy wdrożyć projekt internetowy przeznaczony dla ASP.NET 4 lub starszej wersji. W przypadku wdrożenia projektu internetowego ASP.NET 4 lub starszego w tym samym miejscu docelowym zaznacz pole wyboru Usuń dodatkowe pliki w miejscu docelowym na karcie Ustawienia Kreatora publikowania w sieci Web . Jeśli nie wybierzesz pozycji Usuń dodatkowe pliki w miejscu docelowym, będziesz nadal otrzymywać stronę Błąd konfiguracji.

Okna właściwości projektu zawierają listę rozwijaną Platforma docelowa, ale nie można rozwiązać tego problemu, zmieniając tę wartość z .NET Framework 4.5 na .NET Framework 4. Jeśli zmienisz platformę docelową na starszą wersję platformy, projekt będzie nadal zawierać odwołania do zestawów nowszej wersji platformy i nie zostanie uruchomiony. Musisz ręcznie zmienić te odwołania lub utworzyć nowy projekt przeznaczony dla .NET Framework 4 lub starszej wersji. Aby uzyskać więcej informacji, zobacz .NET Framework Określanie elementów docelowych dla witryn sieci Web.