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

Autor Dykstra

Pobierz projekt początkowy

W tej serii samouczków pokazano, jak wdrożyć (opublikować) projekt aplikacji sieci Web ASP.NET, który zawiera bazę danych SQL Server Compact przy użyciu programu Visual Studio 2012 RC lub Visual Studio Express 2012 RC dla sieci Web. Możesz również użyć programu Visual Studio 2010, jeśli zostanie zainstalowana aktualizacja publikacji w sieci Web. Aby zapoznać się z wprowadzeniem do serii, zobacz pierwszy samouczek w serii.

Aby zapoznać się z samouczkiem zawierającym funkcje wdrażania wprowadzone po wydaniu wersji RC programu Visual Studio 2012, pokazano, jak wdrożyć wersje SQL Server inne niż SQL Server Compact i jak wdrożyć je w witrynach sieci Web systemu Windows Azure, zobacz ASP.NET Web Deployment za pomocą programu Visual Studio.

Na tej stronie opisano niektóre typowe problemy, które mogą wystąpić podczas wdrażania aplikacji sieci Web ASP.NET za pomocą programu Visual Studio. Dla każdej z nich można określić co najmniej jedną możliwą przyczynę i odpowiednie rozwiązania.

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

Scenariusz

Po wdrożeniu lokacji programu na hoście zdalnym zostanie wyświetlony komunikat o błędzie, który zawiera informacje o ustawieniu customErrors w pliku Web. config, ale nie wskazuje, co to jest 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 sieci Web jest uruchomiona na komputerze lokalnym. Zazwyczaj nie ma potrzeby wyświetlania szczegółowych informacji o błędach, gdy aplikacja sieci Web jest publicznie dostępna w Internecie, ponieważ hakerzy mogą korzystać z tych informacji w celu znalezienia luk w zabezpieczeniach aplikacji. Niemniej jednak w przypadku wdrażania witryny lub aktualizacji w lokacji czasami coś się nie powiedzie i należy uzyskać rzeczywisty komunikat o błędzie.

Aby umożliwić aplikacji Wyświetlanie szczegółowych komunikatów o błędach uruchamianych na hoście zdalnym, należy edytować plik Web. config w celu ustawienia trybu customErrors wyłączone, ponownie wdrożyć aplikację i uruchomić aplikację w następujący sposób:

  1. Jeśli plik Web. config aplikacji zawiera element customErrors w elemencie system.web, Zmień atrybut mode na "off". W przeciwnym razie Dodaj element customErrors w elemencie system.web z atrybutem mode ustawionym na wartość "off", jak pokazano w następującym przykładzie:

    <configuration>
      <system.web>
        <customErrors mode="off"/>
      </system.web>
    </configuration>
    
  2. Wdróż aplikację.

  3. Uruchom aplikację i powtórz wszystkie wcześniej, które spowodowały wystąpienie błędu. Teraz można zobaczyć, jaki jest rzeczywisty komunikat o błędzie.

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

Odmowa dostępu na stronie sieci Web, która używa SQL Server Compact

Scenariusz

Podczas wdrażania lokacji korzystającej z SQL Server Compact i uruchamiania 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ść odczytywania natywnych plików binarnych usługi SQL Server Compact, które znajdują się w folderze bin\amd64 lub bin\x86 , ale nie ma uprawnień do odczytu tych folderów. Ustaw uprawnienie Odczyt dla usługi sieciowej w folderze bin , aby upewnić się, że uprawnienia zostały rozszerzone do podfolderów.

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

Scenariusz

Po kliknięciu przycisku Publikuj programu Visual Studio w celu wdrożenia aplikacji w usługach IIS na komputerze lokalnym publikowanie nie powiedzie się, a w oknie danych wyjściowych zostanie wyświetlony komunikat o błędzie podobny do tego:

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 skorzystać z jednego kliknięcia przycisku Publikuj w usługach IIS na komputerze lokalnym, należy 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... Przy użyciu określonego procesu

Scenariusz

Po kliknięciu przycisku Publikuj programu Visual Studio w celu wdrożenia aplikacji publikowanie kończy się niepowodzeniem, a w oknie danych wyjściowych zostanie wyświetlony komunikat o błędzie podobny do tego:

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 panelu sterowania systemu Windows lub w programie Internet Explorer wybierz pozycję Opcje internetowe i wybierz kartę połączenia . W oknie dialogowym Właściwości internetowe kliknij przycisk Ustawienia sieci LAN. W oknie dialogowym Ustawienia sieci lokalnej (LAN) wyczyść pole wyboru Automatycznie wykryj ustawienia . Następnie kliknij ponownie przycisk Publikuj.

Jeśli problem będzie nadal występować, skontaktuj się z administratorem systemu, aby określić, co można zrobić za pomocą ustawień serwera proxy lub zapory. Problem występuje, ponieważ Web Deploy używa niestandardowego portu do wdrożenia usługi zarządzania siecią Web (8172); w przypadku innych połączeń Web Deploy używa portu 80. W przypadku wdrażania w ramach dostawcy hostingu innej firmy zwykle używana jest usługa zarządzania siecią Web.

Domyślna pula aplikacji platformy .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 zainstalowana w usługach IIS. Jeśli wdrażany serwer jest komputerem deweloperskim 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, na którym wdrażasz program, 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 wersji .NET Framework domyślnej puli aplikacji. Aby uzyskać więcej informacji, zobacz samouczek wdrażanie w usługach IIS jako środowisko testowe .

Format ciągu inicjującego nie jest zgodny ze specyfikacją, rozpoczynając od indeksu 0.

Scenariusz

Po wdrożeniu aplikacji przy użyciu funkcji publikowania jednego kliknięcia podczas uruchamiania 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 jak w tym przykładzie, należy edytować plik projektu i dodać następującą właściwość do elementu PropertyGroup, który jest przeznaczony dla wszystkich konfiguracji kompilacji:

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>

Następnie ponownie Wdróż aplikację.

Błąd wewnętrzny serwera HTTP 500

Scenariusz

Po uruchomieniu wdrożonej lokacji zostanie wyświetlony następujący komunikat o błędzie bez określonych 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 jest umieszczenie elementu XML w niewłaściwym miejscu w jednym z plików transformacji XML. Na przykład ten błąd występuje, jeśli umieścisz transformację, która wstawia element <location> w obszarze <system.web> zamiast bezpośrednio w <configuration>. W takim przypadku rozwiązanie jest odpowiednie do skorygowania pliku transformacji XML i ponownego wdrożenia.

Błąd wewnętrzny 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 jest przeznaczona dla 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 wersji .NET Framework domyślnej puli aplikacji. Aby uzyskać więcej informacji, zobacz samouczek wdrażanie w usługach IIS jako środowisko testowe .

Nie można otworzyć SQL Server Express bazy danych w aplikacji_dane

Scenariusz

Zaktualizowano parametry połączenia pliku Web. config w taki sposób, aby wskazywały bazę danych SQL Server Express jako plik mdf w aplikacji_folderu danych , a przy pierwszym uruchomieniu aplikacji 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 SQL Server Expressj bazy danych, która kiedykolwiek istniała na komputerze, nawet jeśli plik MDF został usunięty z wcześniej istniejącej bazy danych. Zmień nazwę pliku MDF na nazwę, która nigdy nie była używana jako nazwa bazy danych, a następnie Zmień plik Web. config , aby używał nowej nazwy. Alternatywnie można użyć SQL Server Management Studio Express do usuwania istniejących SQL Server Express baz danych.

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 przy pierwszym uruchomieniu aplikacji 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 wprowadzona w pliku Web. config była kiedykolwiek używana wcześniej na komputerze, baza danych może już istnieć z niektórymi tabelami. Wybierz nową nazwę, która nie została wcześniej użyta na komputerze, i Zmień plik Web. config , aby wskazywał na użycie tej nowej nazwy bazy danych. Alternatywnie można użyć narzędzia SQL Server Express lub 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 pakowanie/publikowanie SQL , skrypty SQL, które są uruchamiane podczas wdrażania, obejmują tworzenie użytkownika lub Tworzenie poleceń ról, a wykonywanie skryptu kończy się niepowodzeniem, gdy te polecenia są wykonywane. Może pojawić się więcej szczegółowych komunikatów, takich 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 po skonfigurowaniu wdrożenia bazy danych w kreatorze publikacji sieci Web , a nie na karcie pakowanie/publikowanie SQL , Utwórz wątek na forum Konfiguracja i wdrażanie , 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 lub ról. Na przykład firma hostingowa może przypisać role db_datareader, db_datawriteri db_ddladmin do konta użytkownika, które konfiguruje Cię dla Ciebie. 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 wdrażania bazy danych. Można to zrobić, edytując PreSource element dla automatycznie generowanego skryptu bazy danych, aby zawierał następujące atrybuty:

CopyAllUsers=false, CopyAllRoles=false

Aby uzyskać informacje na temat edytowania elementu PreSource w pliku projektu, zobacz How to: Edit Settings Deployment w pliku projektu. Jeśli użytkownicy lub role w Twojej bazie danych programistycznych muszą znajdować się w docelowej bazie danych, skontaktuj się z dostawcą hostingu w celu uzyskania pomocy.

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

Scenariusz

Określono niestandardowe skrypty SQL do uruchomienia podczas wdrażania, a po ich uruchomieniu Web Deploy przekroczenia limitu czasu.

Możliwa przyczyna i rozwiązanie

Uruchamianie wielu skryptów z różnymi trybami transakcji może spowodować błędy limitu czasu. Domyślnie automatycznie generowane skrypty są uruchamiane w transakcji, ale skrypty niestandardowe nie są obsługiwane. W przypadku wybrania opcji Pobierz dane i/lub schemat z istniejącej bazy danych na karcie pakowanie/publikowanie SQL i w przypadku dodania niestandardowego skryptu SQL należy zmienić ustawienia transakcji w niektórych skryptach, tak aby wszystkie skrypty używały tych samych ustawień transakcji. Aby uzyskać więcej informacji, zobacz jak: Wdrażanie bazy danych za pomocą projektu aplikacji sieci Web.

Jeśli skonfigurowano ustawienia transakcji w taki sposób, że wszystkie są takie same, ale nadal pojawiają się te błędy, możliwe jest obejście skryptów osobno. W siatce skryptów bazy danych na karcie pakowanie/publikowanie SQL Usuń zaznaczenie pola wyboru Dołącz dla skryptu, który powoduje błąd limitu czasu, a następnie opublikuj projekt. Następnie wróć do siatki skryptów bazy danych , zaznacz pole wyboru Dodaj ten skrypt, a następnie wyczyść pola wyboru Dołącz dla innych skryptów. Następnie opublikuj projekt ponownie. Tym razem podczas publikowania tylko wybrany skrypt niestandardowy zostanie uruchomiony.

Dane strumienia manifestu lokacji 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 w przypadku użycia opcji y (rzeczywista instalacja). Komunikat wskazuje, że wystąpił problem z uruchomieniem polecenia w trybie testowym.

Ta aplikacja wymaga ManagedRuntimeVersion v 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. Dla puli aplikacji, której próbujesz użyć, właściwość "managedRuntimeVersion" ma wartość "v 2.0". Ta aplikacja wymaga wersji "v 4.0".

Możliwa przyczyna i rozwiązanie

ASP.NET 4 nie jest zainstalowana w usługach IIS. Jeśli wdrażany serwer jest komputerem deweloperskim 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, na którym wdrażasz program, 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ć 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

Podjęto próbę wdrożenia z Menedżera usług IIS przy użyciu interfejsu użytkownika Web Deploy 1,1 na serwerze, na którym zainstalowano 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 funkcje dostępne po nawiązaniu połączenia. (To okno dialogowe może być wyświetlane tylko raz podczas pierwszego nawiązywania połączenia. Aby wyczyścić połączenie i zacząć od nowa, Zamknij Menedżera usług IIS i uruchom go ponownie, wprowadzając inetmgr /reset w wierszu polecenia.) Jeśli jedna z wymienionych funkcji jest Web Deploy interfejsie użytkownikai ma numer wersji niższą niż 8, na serwerze, na którym wdrażana jest wersja, może być zainstalowanych zarówno 1,1, jak i 2,0 wersji programu Web Deploy. Aby można było wdrożyć program z klienta z zainstalowanym systemem 2,0, na serwerze musi być zainstalowany tylko Web Deploy 2,0. Aby rozwiązać ten problem, należy skontaktować się z dostawcą hostingu.

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

Scenariusz

Po uruchomieniu wdrożonej lokacji 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 ramach folderu 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 uzyskanie odpowiednich 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 zestawów natywnych do amd64 i x86. Jednak aby można było wdrożyć te elementy, należy je ręcznie uwzględnić w projekcie. Aby uzyskać więcej informacji, zobacz samouczek wdrażania SQL Server Compact .

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

Scenariusz

Wdrażasz aplikację korzystającą z migracje Code First platformy Entity Framework i systemu DBMS, takich jak SQL Server Compact, która przechowuje swoją bazę danych w pliku w folderze danych_aplikacji. Migracje Code First skonfigurowany do tworzenia bazy danych po pierwszym wdrożeniu. Po uruchomieniu aplikacji zostanie wyświetlony komunikat o błędzie podobny do następującego:

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

Code First próbuje utworzyć bazy danych, ale aplikacja_folderu danych nie istnieje. W aplikacji nie masz żadnych plików_folderze danych podczas wdrażania lub wybrano opcję wyklucz dane_aplikacji na karcie pakiet/publikowanie w sieci Web okna właściwości projektu . Proces wdrażania nie utworzy folderu na serwerze, jeśli w folderze nie ma plików do skopiowania na serwer. Jeśli baza danych została już skonfigurowana w lokacji, proces wdrażania spowoduje usunięcie plików i aplikacji_ samego folderu danych w przypadku wybrania 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 danych_aplikacji , upewnij się, że nie wybrano pola wykluczanie danych aplikacji_ i ponowne wdrożenie.

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

Scenariusz

Pomyślnie zainstalowano aplikację do wdrożenia za pomocą jednego kliknięcia, a następnie uruchamiasz ten 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

Zamknięcie i ponowne uruchomienie programu Visual Studio jest zwykle wszystkie wymagane do rozwiązania tego błędu.

Wdrożenie nie powiodło się, ponieważ poświadczenia użytkownika używane do publikowania nie mają urzędu setACL

Scenariusz

Publikowanie kończy się niepowodzeniem z powodu błędu, który wskazuje, że nie masz uprawnienia do ustawiania uprawnień do folderu (konto użytkownika, którego używasz, nie ma uprawnień 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 danych_aplikacji. Jeśli wiadomo, że uprawnienia domyślne w folderach lokacji są poprawne i nie trzeba ich ustawiać, należy wyłączyć to zachowanie, dodając <IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> do pliku profilu publikowania (w celu wpływu na pojedynczy profil) lub do pliku WPP. targets (aby mieć wpływ na wszystkie profile). Informacje o sposobach edytowania tych plików znajdują się w temacie How to: Edit Deployment Settings in profil (. pubxml) Files.

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

Scenariusz

Wystąpił błąd aplikacji podczas próby utworzenia lub edycji pliku w jednym z folderów aplikacji, ponieważ nie ma on uprawnień do 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 danych_aplikacji. Jeśli aplikacja wymaga dostępu do zapisu w podfolderze, można ustawić uprawnienia dla tego folderu, jak pokazano w ustawieniu uprawnienia folderów i wdrażanie go w samouczkach środowiska produkcyjnego . 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, dodając <IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> do pliku profilu publikacji (aby mieć wpływ na pojedynczy profil) lub do pliku WPP. targets (aby mieć wpływ na wszystkie profile). Informacje o sposobach edytowania tych plików znajdują się w temacie How to: Edit Deployment Settings in profil (. pubxml) Files.

Błąd konfiguracji — atrybut targetFramework odwołuje się do wersji, która jest nowsza niż zainstalowana wersja .NET Framework

Scenariusz

Pomyślnie opublikowano projekt sieci Web, który jest przeznaczony dla ASP.NET 4,5, ale po uruchomieniu aplikacji (z trybem customErrors ustawionym na wartość "off" w pliku Web. config) zostanie wyświetlony 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łędu źródła strony błędu wyróżniono następujący wiersz z pliku 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 w jaki sposób ma zostać dodana obsługa ASP.NET 4,5. Jeśli uaktualnienie serwera nie jest opcją, należy wdrożyć projekt sieci Web, który jest przeznaczony dla ASP.NET 4 lub wcześniejszych. Jeśli projekt sieci Web ASP.NET 4 lub wcześniejszy zostanie wdrożony w tym samym miejscu docelowym, zaznacz pole wyboru Usuń dodatkowe pliki w miejscu docelowym na karcie Ustawienia kreatora publikacji w sieci Web . Jeśli nie wybierzesz opcji Usuń dodatkowe pliki w miejscu docelowym, będziesz nadal otrzymywać stronę błędu konfiguracji.

Okna Właściwości projektu zawierają listę rozwijaną platformy docelowej, ale nie można rozwiązać tego problemu przez zmianę wartości z .NET Framework 4,5 na .NET Framework 4. Jeśli zmienisz platformę docelową na wcześniejszą wersję Framework, projekt nadal będzie zawierał odwołania do zestawów wersji platformy w przyszłości i nie zostanie uruchomiony. Musisz ręcznie zmienić te odwołania lub utworzyć nowy projekt, który jest przeznaczony dla .NET Framework 4 lub wcześniejszych. Aby uzyskać więcej informacji, zobacz .NET Framework określania elementów docelowych dla witryn sieci Web.