Metodi per evitare le richieste non validePreventing Invalid Requests

È possibile impedire la generazione di alcuni tipi di eccezioni analizzando il flusso dell'applicazione e assicurandosi che le richieste inviate al server di report siano valide.You can prevent some types of exceptions from being thrown by analyzing your application flow and ensuring that the requests being sent to the report server are valid. Nelle applicazioni che consentono agli utenti di aggiungere o aggiornare il nome di un report, un'origine dati o un altro elemento del server di report, è necessario convalidare il testo che un utente potrebbe immettere.For example, in applications that enable users to add or update the name of a report, data source, or other report server item, you should validate the text that a user might enter. È sempre necessario verificare se sono presenti caratteri riservati prima di inviare la richiesta a un server di report.You should always check for reserved characters before sending the request to a report server. Usare istruzioni if condizionali o altri costrutti logici nel codice per avvisare l'utente che non sono state soddisfatte le condizioni necessarie per l'invio delle richieste al server di report.Use conditional if statements or other logical constructs in your code to alert the user that they have not met the conditions necessary to send requests to the report server.

Nell'esempio C# semplificato seguente, gli utenti visualizzano ad esempio un messaggio di errore descrittivo quando tentano di creare un report con un nome che contiene una barra (/).In the following, simplified C# example, users are presented with a friendly error message when they attempt to create a report with a name that contains a forward slash (/) character.

// 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);  
   }  
}  

Per altre informazioni sui tipi di errore che è possibile prevenire prima dell'invio delle richieste al server di report, vedere Tabella degli errori SoapException.For more information about the types of errors that can be prevented before requests are sent to the report server, see SoapException Errors Table. Per altre informazioni su come migliorare ulteriormente l'esempio precedente usando blocchi try/catch, vedere Uso di blocchi try e catch.For more information about further enhancing the previous example using try/catch blocks, see Using Try and Catch Blocks.

Vedere ancheSee Also

Introduzione alla gestione delle eccezioni in Reporting Services Introducing Exception Handling in Reporting Services
Classe SoapException di Reporting ServicesReporting Services SoapException Class