Freigeben über


Verhindern ungültiger Anforderungen

Sie können verhindern, dass bestimmte Ausnahmearten ausgelöst werden, indem Sie den Anwendungsablauf analysieren und sicherstellen, dass die an den Berichtsserver gesendeten Anforderungen gültig sind. Beispielsweise verfügen Sie über Anwendungen, mit denen Benutzer den Namen eines Berichts, einer Datenquelle oder eines anderen Berichtsserverelements hinzufügen oder aktualisieren können. Wenn dies der Fall ist, sollten Sie den Text überprüfen, den ein Benutzer möglicherweise eingeben kann. Sie sollten stets nach reservierten Zeichen suchen, bevor die Anforderung an einen Berichtsserver gesendet werden kann. Verwenden Sie bedingte Anweisungen oder andere logische Konstrukte in Ihrem Code, um den Benutzer darüber zu informieren, dass er die zum Senden von Anforderungen an den Berichtsserver erforderlichen Bedingungen nicht erfüllt hat.

Im folgenden vereinfachten C#-Beispiel erhalten die Benutzer eine freundliche Fehlermeldung, wenn Sie versuchen, einen Bericht mit einem Namen zu erstellen, der einen Schrägstrich (/) enthält.

// C#  
private void PublishReport()  
{  
   int index;  
   string reservedChar;  
   string message;  
  
   // Check the text value of the name text box for "/",  
   // a reserved character  
   index = nameTextBox.Text.IndexOf(@"/");  
  
   if ( index != -1) // The text contains the character  
   {  
      reservedChar = nameTextBox.Text.Substring(index, 1);  
      // Build a user-friendly error message  
      message = "The name of the report cannot contain the reserved character " +  
         "\"" + reservedChar + "\". " +  
         "Please enter a valid name for the report. " +  
         "For more information about reserved characters, " +  
         "see the help documentation";  
  
      MessageBox.Show(message, "Invalid Input Error");  
   }  
   else // Publish the report  
   {  
      Byte[] definition = null;  
      Warning[] warnings = {};  
      string name = nameTextBox.Text;  
  
      FileStream stream = File.OpenRead("MyReport.rdl");  
      definition = new Byte[stream.Length];  
      stream.Read(definition, 0, (int) stream.Length);  
      stream.Close();  
      // Create report with user-defined name  
      rs.CreateCatalogItem("Report", name, "/Samples", false, definition, null, out warnings);  
      MessageBox.Show("Report: {0} created successfully", name);  
   }  
}  

Weitere Informationen zu den Arten von Fehlern, die verhindert werden können, bevor Anforderungen an den Berichtsserver gesendet werden, finden Sie in der Tabelle "SoapException Errors". Weitere Informationen zur weiteren Verbesserung des vorherigen Beispiels mithilfe von Try/Catch-Blöcken finden Sie unter Verwenden von Try- und Catch-Blöcken.

Einführung in die Ausnahmeverwaltung in Reporting Services
Reporting Services SoapException-Klasse