Frage : ASP.NET: URL mit den Apostrophen, die Störung auf Bediener aber nicht in der Entwickler-Umwelt werfen

Ich lasse eine ASP.NET APP, entwickeln in VS2008, das auf IIS 6. läuft. Es zurückgreift auf eine SQL-Serverdatenbank 2005 und erzeugt die URL, die auf Daten in einer bestimmten Spalte basieren. Z.B. wenn die Spalte den Text „etwas Beispieltext“ enthält, sein das erzeugte URL:

http://MyApp/default.aspx? name=Some+Sample+Text

The APP-Arbeiten fein, außer einer sonderbaren Störung. Wenn die Schnur von der Quelspalte einen Apostroph einschließt -- sagen, „ist hier etwas Beispieltext“ -- er erzeugt ein URL, das wie so formatiert:

http://MyApp/default.aspx? name=Here%3bs+Some+Sample+Text

This Arbeiten tadellos in der dem Entwickler-Umwelt und Debugger, aber, wenn ich den Aufstellungsort zum Bediener veröffentliche, jedes mögliches erzeugte URL, das einen Apostroph einschließt, werfen einen Laufzeitfehler. Die Störung selbst ist unten, und die Definition der „Brotkrume“ Methode, die sie bezieht, angebracht t. Ich sein für dankbar, was Hilfe Sie anbieten können. Wenn Sie mehr Informationen über die APP benötigen, einfach bitten. Thanks.

************************** ********** ********** ****

There ist keine Reihe Position 0. am
Description: Eine unhandled Ausnahme auftrat während der Durchführung des gegenwärtigen Netzantrags en. Das Kellerprotokoll zu mehr Information über die Störung bitte wiederholen und wo sie aus dem Code stammte.

Exception Details: System.IndexOutOfRangeException: Es gibt keine Reihe Position 0.

Source an der Störung:

Line 105:        
Line 106:            


Line 107:            
<%= Brotkrumen () %>

Line 108:            

Line 109:                

 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
public Schnur Brotkrumen ()
        {
            wenn (Request.QueryString [„Kategorie“] == Null && Request.QueryString [„Name“] == Null)
                Rückholschnur. Leer;
            sonst wenn (Lernabschnitt [„Kategorie“]! = ungültige && Lernabschnitt [„Name“] == Null)
                Rückholschnur. Format („ Library >  {0} “, Lernabschnitt [„Kategorie“]);
            sonst wenn (Lernabschnitt [„Kategorie“]! = ungültiger && Lernabschnitt [„Name“]! = Null)
                RückholBreadcrumbHelper (Lernabschnitt [„Kategorie“], ParseQueryName (Lernabschnitt [„Name“]));
            sonst wenn (Lernabschnitt [„Kategorie“] == Null && Lernabschnitt [„Name“]! = Null)
                //if direkt
                RückholBreadcrumbHelper (LibraryModuleHelper.Category (Lernabschnitt [„Name“] .ToString ()), ParseQueryName (Lernabschnitt [„Name“]));

            Rückholschnur. Leer;
        }

Antwort : ASP.NET: URL mit den Apostrophen, die Störung auf Bediener aber nicht in der Entwickler-Umwelt werfen

Sind Sie using Javascript in Ihnen Code,
Wenn ja 'gedeutet, während Ende der Schnur und es Ihren Code bricht, Sie müssen ihn ersetzen, überprüfen:
http://www.devx.com/tips/Tip/13618

Anmerkung: Wenn Sie nicht js benutzen, bedeutet das nicht, dass der Ihr interne Code nicht js erzeugt (einen Blick in IE an der Quelle Ihrer Seite haben)
Weitere Lösungen  
 
programming4us programming4us