Vraag : ASP.NET: URLs met weglatingstekens die fout op server maar niet in devmilieu werpen

Ik heb een ASP.NET app, in VS2008 wordt ontwikkeld, die op IIS 6 die loopt. Het heeft toegang tot een SQL gegevensbestand dat van de Server 2005 en produceert URLs op gegevens in een bepaalde kolom wordt gebaseerd. Bijvoorbeeld, als de kolom de tekst „Één of andere Tekst van de Steekproef“ bevat, zou geproduceerde URL zijn:

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

The app werkt boete, behalve één bizarre fout. Als het koord van de bronkolom een weglatingsteken omvat -- zeg, „hier is Één of andere Tekst van de Steekproef“ -- het produceert een URL zo wordt geformatteerd die als:

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

This volkomen in het devmilieu en debugger, maar wanneer ik de plaats aan de server publiceer, om het even welke geproduceerde URL die een weglatingsteken omvat werpen een runtime fout. De fout zelf is hieronder, en de definitie van de methode van „Broodkruimels“ het verwijzingen in bijlage is. Ik zou dankbaar zijn voor de hulp kunt aanbieden u. Als u any more informatie over app nodig hebt, vraag enkel. Thanks.

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

There is geen rij bij positie 0.
Description: Unhandled uitzondering voorkwam tijdens de uitvoering van het huidige Webverzoek. Gelieve te herzien het stapelspoor voor meer informatie over de fout en waar het in de code voortkwam. details

Exception: System.IndexOutOfRangeException: Er is geen rij bij positie0.

Source:

Line 105:        
Line 106:            


Line 107:            
<%= () %>

Line 108:            

Line 109:                

 
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
van het
public koord Broodkruimels ()
        {
            als (ongeldige Request.QueryString [„categorie“] == ongeldige && Request.QueryString [„naam“] ==)
                terugkeer koord. Leeg;
            als anders (Zitting [„categorie“]! = ongeldige ongeldige Zitting && [„naam“] ==)
                terugkeer koord. Formaat („ Library >  {0} “, Zitting [„categorie“]);
            als anders (Zitting [„categorie“]! = ongeldige Zitting && [„naam“]! = verklaar) nietig
                keer BreadcrumbHelper (Zitting [„categorie“] terug, ParseQueryName (Zitting [„naam“]));
            als anders de ongeldige && Zitting (van de Zitting [„categorie“] == [„naam“]! = verklaar) nietig
                //if direct
                terugkeer BreadcrumbHelper (LibraryModuleHelper.Category (Zitting [„naam“] .ToString ()), ParseQueryName (Zitting [„naam“]));

            terugkeer koord. Leeg;
        }

Antwoord : ASP.NET: URLs met weglatingstekens die fout op server maar niet in devmilieu werpen

Bent u die javascript in u code gebruiken,
Als zo, 'wordt geïnterpreteerdt als eind van koord en het breekt uw code, moet u het vervangen, controleert:
http://www.devx.com/tips/Tip/13618

Nota: Als u niet js gebruikt, betekent dat niet de uw interne code niet js produceert (hebben een blik in D.W.Z. bij de bron van uw pagina)
Andere oplossingen  
 
programming4us programming4us