Zapobieganie nieprawidłowe żądania
Można wyłączyć niektóre typy wyjątki od są generowane przez analizowanie sieci przepływu aplikacji i zapewniając prawidłowe żądania, wysyłany do serwer raportów.Na przykład w aplikacjach, które umożliwiają użytkownikom dodawanie lub aktualizowanie nazwę raportu, urządzenie źródłowe danych lub innego element serwer raportów, należy sprawdź poprawność tekst, który użytkownik może wprowadzić.Należy zawsze sprawdzić znaki zarezerwowane, przed wysłaniem żądania do serwer raportów.Za pomocą warunkowe if instrukcje lub innych logiczne konstrukcje kodu do użytkownika alert, że nie spełniają one warunki wymagane do wysyłania żądań do serwer raportów.
W przypadku następujących, uproszczone C# przykładu użytkowników prezentowany przyjazny komunikat, gdy próbują oni utworzyć raport przy użyciu nazwy, która zawiera znak ukośnika (/).
// 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 = null;
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
warnings = rs.CreateReport(name, "/Samples", false, definition, null);
MessageBox.Show("Report: {0} created successfully", name);
}
}
Aby dowiedzieć się więcej o typach błędów, które można zapobiec, przed wysłaniem żądania do serwer raportów, zobacz Tabela Błędy SoapException. Aby uzyskać więcej informacji na temat dalszych zwiększenia w poprzednim przykładzie przy użyciu bloków try/catch zobacz Przy użyciu bloków try/przechwytywania.
See Also