Ich spotte HttpRequestBase, damit ich einen HtmlHelper im Testcode erstellen und Tests um HtmlHelper-Erweiterungsmethoden schreiben kann. Ich mache das als Teil des Setup-Codes:
%Vor%was auf zwei Dev-Rechnern (einer mit XP, einer mit Vista 64-Bit) funktioniert. Auf einem Windows Server 2003-Buildcomputer schlägt der Test jedoch fehl, wenn ich RouteLink () auf dem HtmlHelper wie folgt aufruft:
System.ArgumentException: Der relative virtuelle Pfad der Anwendung '~ /' ist hier nicht erlaubt. bei System.Web.VirtualPath.Create (String virtualPath, VirtualPathOptions-Optionen)
In beiden Fällen verwende ich NUnit 2.4.8 und die NUnit GUI als Test-Runner. Alles andere ist identisch mit Ausnahme des Betriebssystems, soweit ich das beurteilen kann: dieselbe Version von RhinoMocks (3.5), dieselbe Version von ASP.NET MVC (RTM). Ich habe versucht, die Binaries gegenüber einer Dev-Maschine zu kopieren, anstatt die auf der Erstellungsmaschine zu verwenden, und das macht keinen Unterschied.
Wenn ich die erste Zeile im Setup-Code zu dieser ändern:
%Vor%Der Test wird auf allen Maschinen ausgeführt.
Irgendeine Idee warum?
"~ /" ist kein gültiger Wert für ApplicationPath. Der springende Punkt der "~ /" -Syntax ist, dass Sie URLs angeben können, die relativ zu ApplicationPath sind.
Für eine verwurzelte Site sollte der Wert "/" sein. Für Sites in virtuellen Verzeichnissen sollte es einen Wert wie "/ mysite" geben.
Tags und Links asp.net-mvc asp.net