Freigeben über


FAQ zur Bereitstellung von ASP.NET-Webanwendungsprojekten

Dieses Thema beantwortet häufig gestellte Fragen zur Bereitstellung von Webanwendungsprojekten.

Bei zahlreichen Antworten werden Sie angewiesen, Bereitstellungseinstellungen durch Bearbeitung der Projektdatei zu ändern. Informationen dazu finden Sie unter Gewusst wie: Bearbeiten der Bereitstellungseinstellungen in der Projektdatei.

Dieses Thema enthält folgende Abschnitte:

  • Kann ich bestimmte Dateien oder Ordner von der Bereitstellung ausschließen?

  • Kann ich die Detailgenauigkeit bei der Anzeige des Verpackungs- oder Veröffentlichungsstatus im Ausgabefenster einstellen?

  • Kann ich den Volltextkatalog für eine Datenbank bereitstellen?

  • Kann ich vom System generierte Datenbankobjekte in benutzerdefinierten Bereitstellungsskripts mit Verweisen versehen?

  • Kann ich den Remote-Agent-Dienst über HTTPS mit One-Click-Veröffentlichung verwenden?

  • Kann ich die tempAgent-Anbietereinstellung für Webbereitstellung mit One-Click-Veröffentlichung verwenden?

  • Kann ich die Verpackung oder Veröffentlichung unterbrechen, wenn ich von vorne anfangen muss, da ich etwas vergessen habe?

  • Kann per One-Click-Veröffentlichung ein Paket zu Archivierungszwecken erstellt werden?

  • Kann ich angeben, dass bei jeder Erstellung einer Projektmappe ein Paket erstellt werden soll?

  • Kann ich den Standardort ändern, an dem Visual Studio das Bereitstellungspaket erstellt?

  • Kann ich Delegierungsregeln konfigurieren, damit Entwickler Bereitstellungen auf Stagingservern ausführen, jedoch keine IIS-Einstellungen ändern können?

  • Warum erhalte ich einen SQL-Timeoutfehler, wenn ich während der Bereitstellung benutzerdefinierte Skripts ausführe?

  • Warum erhalte ich einen Fehler, demzufolge ASP.NET 4 erforderlich ist, wenn ASP.NET 4 bereits installiert ist?

  • Wie behebe ich diesen Fehler: Die Streamdaten von "sitemanifest..." sind noch nicht verfügbar?

  • Warum schlägt die Bereitstellung fehl, wenn versucht wird, die Datenbankbefehle CREATE USER oder CREATE ROLE auszuführen?

  • Kann ich ein einzelnes Paket erstellen und damit Bereitstellungen in IIS 6 und IIS 7 ausführen?

  • Wie kann ein ASP.NET Razor-Projekt bereitgestellt werden, das SQL Server Compact verwendet?

  • Kann ich eine PUBLISHSETTINGS-Datei in Visual Studio verwenden?

Kann ich bestimmte Dateien oder Ordner von der Bereitstellung ausschließen?

Sie können die Anzahl der Dateien beschränken, die durch Auswählen der Optionen Nur zur Ausführung der Anwendung erforderliche Dateien oder Alle Dateien im Projekt auf der Registerkarte Web packen/veröffentlichen bereitgestellt werden. Wenn Sie die Option Alle Dateien im Projekt auswählen, können Sie mit der rechten Maustaste auf eine Datei in Projektmappen-Explorer klicken und Aus Projekt ausschließen auswählen, um deren Bereitstellung zu verhindern.

Wenn diese Optionen für Sie nicht flexibel genug sind, bearbeiten Sie die Projektdatei, und fügen Sie ein ExcludeFilesFromDeployment-Element oder ein ExcludeFoldersFromDeployment-Element (oder beide) im entsprechenden PropertyGroup-Element hinzu. In jedem Element können Sie einen einzelnen Namen angeben, oder Sie können mehrere Namen angeben, die durch Semikolons (;) begrenzt werden. Im folgenden Beispiel wird ein PropertyGroup-Element für die Debugbuildkonfiguration veranschaulicht:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  <ExcludeFilesFromDeployment>
    File1.aspx;File2.aspx
  </ExcludeFilesFromDeployment>
  <ExcludeFoldersFromDeployment>
    Folder1;Folder2
  </ExcludeFoldersFromDeployment>
  <!-- Other settings -->
</PropertyGroup> 

Nach oben

Kann ich die Detailgenauigkeit bei der Anzeige des Verpackungs- oder Veröffentlichungsstatus im Ausgabefenster einstellen?

Der Ausführlichkeitsgrad der Verpackung und Veröffentlichung wird durch die gleiche Visual Studio-Einstellung gesteuert, von der der MSBuild-Ausführlichkeitsgrad bestimmt wird. Wählen Sie im Hauptmenü Extras und dann Optionen aus. Erweitern Sie im Dialogfeld Optionen die Option Projekte und Projektmappen, und wählen Sie dann Erstellen und Ausführen aus. Sie sehen dann die Dropdownliste Ausführlichkeit der MSBuild-Projektbuildausgabe und können eine der folgenden Optionen aus dieser Liste auswählen:

  • Quiet

  • Minimal

  • Normal

  • Detailed

  • Diagnose

Diese Optionen entsprechen dem, was mit dem /verbosity-Flag oder dem /v-Flag festgelegt werden kann, wenn Sie MSBuild von der Befehlszeile aus ausführen. Weitere Informationen über MSBuild-Befehlszeilenflags finden Sie unter MSBuild-Befehlszeilenreferenz.

Nach oben

Kann ich den Volltextkatalog für eine Datenbank bereitstellen?

Standardmäßig wird jedes Skript, das Visual Studio automatisch für die Bereitstellung generiert, in einer Transaktion ausgeführt. Skripts, die Volltextkataloge bereitstellen, werden in Transaktionen nicht erfolgreich ausgeführt. Standardmäßig erstellt Visual Studio daher keine Skripts für Volltextkataloge.

Um die Bereitstellung zu ändern, damit sie einen Volltextkatalog enthält, bearbeiten Sie die Projektdatei, und nehmen Sie die folgenden Änderungen vor:

  • Legen Sie das Transacted-Attribut des Source-Elements für das automatisch generierte Skript auf False fest.

  • Legen Sie das CopyAllFullTextCatalogs-Attribut des PreSource-Elements für das automatisch generierte Skript auf True fest.

Nach oben

Kann ich vom System generierte Datenbankobjekte in benutzerdefinierten Bereitstellungsskripts mit Verweisen versehen?

Wenn Sie angeben, dass Visual Studio automatisch Skripts generieren soll, um eine Datenbankstruktur bereitzustellen, werden in der Zieldatenbank standardmäßig neue Namen für vom System generierte Objekte (z. B. Einschränkungen) generiert. Wenn Sie ein benutzerdefiniertes Skript schreiben, um eines dieser Objekte zu ändern oder zu verwerfen, und wenn Sie den Namen angeben, der dafür in der Quelldatenbank generiert wurde, tritt beim Skript bei der Ausführung in der Zieldatenbank möglicherweise ein Fehler auf.

Sie können angeben, dass vom System generierte Objektnamen in der Ziel- und der Quelldatenbank identisch sein sollen. Bearbeiten Sie hierzu die Projektdatei, und fügen Sie dem PreSource-Element das folgende Attribut für das automatisch generierte Skript hinzu:

DriIncludeSystemNames="True"

Nach oben

Kann ich den Remote-Agent-Dienst über HTTPS mit One-Click-Veröffentlichung verwenden?

Nein. Wenn Sie eine HTTPS-URL im Textfeld Dienst-URL des Dialogfelds Web veröffentlichen eingeben, verwendet Visual Studio automatisch den Windows-Verwaltungsdienst. Wenn Sie HTTPS verwenden möchten, wird empfohlen, den Windows-Verwaltungsdienst zu verwenden.

Nach oben

Kann ich die tempAgent-Anbietereinstellung für Webbereitstellung mit One-Click-Veröffentlichung verwenden?

Nein. Wenn Sie die tempAgent-Anbietereinstellung verwenden möchten, müssen Sie die Befehlszeile Web Deploy oder die Datei deploy.cmd verwenden, die Visual Studio generiert, wenn es ein Bereitstellungspaket erstellt.

Nach oben

Kann ich die Verpackung oder Veröffentlichung unterbrechen, wenn ich von vorne anfangen muss, da ich etwas vergessen habe?

Ja. Drücken Sie STRG+UNTBR. Der Verpackungs- oder Veröffentlichungsprozess wird beendet. Wenn Sie einen Neustart ausführen, wird Visual Studio an der Stelle gestartet, an der es zuvor beendet wurde. Bereits abgeschlossene Schritte werden nicht wiederholt.

Nach oben

Kann per One-Click-Veröffentlichung ein Paket zu Archivierungszwecken erstellt werden?

Ja. Bearbeiten Sie die Projektdatei, und fügen Sie ein CreatePackageOnPublish-Element im entsprechenden PropertyGroup-Element hinzu (siehe folgendes Beispiel):

<CreatePackageOnPublish>True</CreatePackageOnPublish>

Nach oben

Kann ich angeben, dass bei jeder Erstellung einer Projektmappe ein Paket erstellt werden soll?

Ja. Bearbeiten Sie die Projektdatei, und fügen Sie im entsprechenden PropertyGroup-Element ein DeployOnBuild-Element hinzu. Im folgenden Beispiel wird ein PropertyGroup-Element für die Releasebuildkonfiguration veranschaulicht:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  <DeployOnBuild>True</DeployOnBuild>
  <!-- Additional settings -->
</PropertyGroup>

Das DeployDefaultTarget-Element muss auch auf Package festgelegt werden. Es ist jedoch optional, da es sich um den Standardwert handelt.

Nach oben

Kann ich den Standardort ändern, an dem Visual Studio das Bereitstellungspaket erstellt?

Ja. Bearbeiten Sie die Projektdatei, und fügen Sie im entsprechenden PropertyGroup-Element ein IntermediateOutputPath-Element hinzu. Im folgenden Beispiel wird ein PropertyGroup-Element für die Releasebuildkonfiguration veranschaulicht:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  <IntermediateOutputPath>Path</IntermediateOutputPath>
  <!-- Additional settings -->
</PropertyGroup>

Ersetzen Sie Pfad durch den vollständigen Pfad des Ordners, in dem Sie alle Dateien erstellen möchten, die dem Bereitstellungspaket zugeordnet sind.

Nach oben

Kann ich Delegierungsregeln konfigurieren, damit Entwickler Bereitstellungen auf Stagingservern ausführen, jedoch keine IIS-Einstellungen ändern können?

Dies ist in IIS 7 und höheren Versionen möglich. Informationen zum Delegieren von Bereitstellungsberechtigungen finden Sie in den folgenden Themen:

Nach oben

Warum erhalte ich einen SQL-Timeoutfehler, wenn ich während der Bereitstellung benutzerdefinierte Skripts ausführe?

Die Ausführung mehrerer Skripts, in denen Transaktionsmodi gemischt werden, kann zu Timeoutfehlern führen. Standardmäßig werden automatisch generierte Skripts in einer Transaktion ausgeführt. Allerdings werden benutzerdefinierte Skripts nicht in einer Transaktion ausgeführt. Daher müssen bei Auswahl der Option Daten und/oder Schema aus einer vorhandenen Datenbank extrahieren auf der Registerkarte Verpacken/Veröffentlichen - SQL und beim Hinzufügen eines benutzerdefinierten SQL-Skripts Transaktionseinstellungen für einige Skripts geändert werden, damit alle Skripts die gleichen Transaktionseinstellungen verwenden. Weitere Informationen finden Sie unter Gewusst wie: Bereitstellen einer Datenbank mit eine–m Webanwendungsprojekt.

Nach oben

Warum erhalte ich einen Fehler, demzufolge ASP.NET 4 erforderlich ist, wenn ASP.NET 4 bereits installiert ist?

Um eine ASP.NET 4-Webanwendung bereitzustellen, muss ASP.NET 4 bei IIS auf dem Zielserver registriert werden. Außerdem muss .NET Framework 4 der Anwendungspool der IIS-Website, auf der Sie die Bereitstellung ausführen, zugewiesen werden. Wenn eine dieser Bedingungen nicht wahr ist, wird bei der Bereitstellung möglicherweise eine der folgenden Fehlermeldungen angezeigt:

  • Der standardmäßige .NET 4.0-Anwendungspool ist nicht vorhanden, oder die Anwendung konnte nicht hinzugefügt werden. Überprüfen Sie, ob ASP.NET 4.0 auf diesem Computer installiert ist.

  • Im Anwendungspool, den Sie verwenden möchten, ist die 'managedRuntimeVersion'-Eigenschaft auf 'v2.0' festgelegt. Diese Anwendung erfordert 'v4.0.'

ASP.NET 4 ist installiert, wenn Sie Visual Studio installieren. Der Installationsvorgang registriert ASP.NET 4 jedoch nicht automatisch bei IIS, und vorhandene IIS-Websites werden nicht automatisch .NET 4-Anwendungspools zugewiesen. Um dies zu korrigieren, registrieren Sie ASP.NET bei IIS, und legen Sie den Anwendungspool der Ziel-IIS-Website auf die .NET Framework-Version fest, die für das Paket erforderlich ist. Informationen zur Registrierung von IIS finden Sie unter ASP.NET IIS-Registrierungstool (Aspnet_regiis.exe).

Nach oben

Wie behebe ich diesen Fehler: Die Streamdaten von "sitemanifest..."sind noch nicht verfügbar?

In bestimmten Szenarien wird bei der Installation eines Pakets mithilfe der Datei deploy.cmd mit der t-Option (Test) ein Fehler angezeigt, der ungefähr dem folgenden Beispiel entspricht:

Fehler: Die Streamdaten von 'sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' sind noch nicht verfügbar.

Dies bedeutet, dass mit dem Befehl kein Testbericht erzeugt werden kann. Diese Meldung bedeutet jedoch nicht, dass die Bereitstellung bei Ausführung des Befehls mit der y-Option (tatsächliche Installation) fehlschlägt. Die Meldung informiert nur darüber, dass ein Problem mit der Ausführung des Befehls im Testmodus besteht.

Nach oben

Warum schlägt die Bereitstellung fehl, wenn versucht wird, die Datenbankbefehle CREATE USER oder CREATE ROLE auszuführen?

Dieser Fehler tritt häufig auf, da die Datenbank Benutzer oder Rollen enthält, Sie jedoch Veröffentlichungen mithilfe von Anmeldeinformationen vornehmen, die nicht die Berechtigung zum Erstellen von Benutzern oder Rollen beinhalten. Zum Beispiel kann der Hostinganbieter die Rollen db_datareader, db_datawriter und db_ddladmin dem Benutzerkonto zuweisen, das er für den Benutzer einrichtet. Dies ist ausreichend für die Erstellung der meisten Datenbankobjekte, jedoch nicht für die Erstellung von Benutzern oder Rollen. Wenn dies die Ursache des Fehlers ist, werden Meldungen angezeigt, die im Ausgabefenster etwa folgendermaßen aussehen:

Der Fehler trat ungefähr zwischen den Zeilen '1' und '3' des Skripts auf. Im ausführlichen Protokoll finden Sie ggf. weitere Informationen zum Fehler. Der Befehl wurde gestartet mit:

CREATE USER [user2] FOR LOGIN [user2] WITH DEFAULT

Fehler: Der Benutzer besitzt keine Berechtigung zum Ausführen dieser Aktion.

Der fehlgeschlagene Befehl könnte auch CREATE ROLE sein. In diesem Fall können Sie den Fehler vermeiden, indem Sie Benutzer und Rollen von der Datenbankbereitstellung ausschließen. Dazu bearbeiten Sie das PreSource-Element für das automatisch generierte Skript der Datenbank, damit es die folgenden Attribute enthält:

CopyAllUsers=false, CopyAllRoles=false

Wenn sich die Benutzer oder die Rollen in der Entwicklungsdatenbank in der Zieldatenbank befinden müssen, wenden Sie sich zur Unterstützung an Ihren Hostinganbieter.

Nach oben

Kann ich ein einzelnes Paket erstellen und damit Bereitstellungen in IIS 6 und IIS 7 ausführen?

Sie können Bereitstellungen unter IIS 6 und IIS 7 mit dem gleichen Paket ausführen, wenn eine der folgenden Bedingungen wahr ist:

  • Sie aktivieren nicht das Kontrollkästchen Alle IIS-Einstellungen gemäß Konfiguration in IIS-Manager einschließen auf der Registerkarte Web packen/veröffentlichen.

  • Sie aktivieren das Kontrollkästchen Alle IIS-Einstellungen gemäß Konfiguration in IIS-Manager einschließen und erstellen das Paket unter IIS 6.

Sie können kein Paket unter IIS 6 bereitstellen, das unter IIS 7 erstellt wird, wenn Sie das Kontrollkästchen Alle IIS-Einstellungen gemäß Konfiguration in IIS-Manager einschließen aktivieren.

Wie kann ein ASP.NET Razor-Projekt bereitgestellt werden, das SQL Server Compact verwendet?

Sie können das Projekt bereitstellen, indem Sie die ASP.NET Razor-Assembly und die SQL Server Compact-Assembly im Ordner "Bin" des Projekts einfügen. Führen Sie die folgenden Schritte aus, um die erforderlichen Assemblys in ein Website- oder Webanwendungsprojekt einzuschließen:

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen, und klicken Sie auf Abhängigkeiten für die Bereitstellung hinzufügen.

  2. Wählen Sie im Dialogfeld Abhängigkeiten für die Bereitstellung hinzufügen die Optionen ASP.NET Web Pages mit Razor-Syntax und SQL Server Compact aus.

  3. Klicken Sie auf OK.

Nun können Sie das Webprojekt auf dieselbe Weise wie ein beliebiges anderes Projekt bereitstellen.

Kann ich eine PUBLISHSETTINGS-Datei in Visual Studio verwenden?

Wenn der Hostinganbieter Ihnen eine PUBLISHSETTINGS-Datei sendet, können Sie diese in Visual Studio verwenden, indem Sie sie im Stammordner des Projekts einfügen.

Siehe auch

Konzepte

Einstieg in die ASP.NET-Bereitstellung