Ich bin mit StructureMap.MVC5
StructureMap wirft Argument auf Httpcontext
ein sehr seltsamen Problem mit habe ich ein brandneues MVC5-Projekt in Visual Studio (Standardoptionen für ein ASP.net MVC-Projekt ausgewählt wurden links.)
Ich habe dann structuremap.mvc5 über den Paketmanager nuget (Install-Package StructureMap.MVC
) installiert.
Ich habe dann den folgenden Code an die Spitze der "HomeController.cs" file:
namespace TestMVC.Controllers
{
public interface ITest
{
string TestMessage();
}
public class Test : ITest
{
public string TestMessage()
{
return "this worked again 23";
}
}
ich dann einen Konstruktor und privaten Member wie folgt hinzugefügt: Schließlich
public class HomeController : Controller
{
private readonly ITest _test;
public HomeController(ITest test)
{
_test = test;
}
, Ich aktualisierte das Ergebnis der About-Aktion wie folgt:
public ActionResult About()
{
ViewBag.Message = _test.TestMessage();
return View();
}
Das Projekt wird kompiliert und gestartet. Ich erhalte die Standard-Index-Seite als normal gegeben, aber dann irgendwo zwischen 2 und 5 Sekunden, nachdem die Seite in dem Browser zurückgegeben wird, erhalte ich eine Ausnahme geworfen in „StructureMapDependencyScope.cs“ auf der return
Linie dieser Methode:
private HttpContextBase HttpContext {
get {
var ctx = Container.TryGetInstance<HttpContextBase>();
return ctx ?? new HttpContextWrapper(System.Web.HttpContext.Current);
}
}
Die gegebenen genauen Fehler sind:
System.ArgumentNullException was unhandled by user code
HResult=-2147467261
Message=Value cannot be null.
Parameter name: httpContext
ParamName=httpContext
Source=System.Web
StackTrace:
at System.Web.HttpContextWrapper..ctor(HttpContext httpContext)
at TestMVC.DependencyResolution.StructureMapDependencyScope.get_HttpContext() in d:\Code\Annies\AnniesV4\AnniesV4-BookingAdministration\TestMVC\DependencyResolution\StructureMapDependencyScope.cs:line 69
at TestMVC.DependencyResolution.StructureMapDependencyScope.get_CurrentNestedContainer() in d:\Code\Annies\AnniesV4\AnniesV4-BookingAdministration\TestMVC\DependencyResolution\StructureMapDependencyScope.cs:line 55
at TestMVC.DependencyResolution.StructureMapDependencyScope.DisposeNestedContainer() in d:\Code\Annies\AnniesV4\AnniesV4-BookingAdministration\TestMVC\DependencyResolution\StructureMapDependencyScope.cs:line 90
at TestMVC.DependencyResolution.StructureMapDependencyScope.Dispose() in d:\Code\Annies\AnniesV4\AnniesV4-BookingAdministration\TestMVC\DependencyResolution\StructureMapDependencyScope.cs:line 85
at TestMVC.App_Start.StructuremapMvc.End() in d:\Code\Annies\AnniesV4\AnniesV4-BookingAdministration\TestMVC\App_Start\StructuremapMvc.cs:line 44
InnerException:
prüfen, System.Web.HttpContext.Current
ist in der Tat an diesem Punkt null.
Wenn ich das Projekt stoppe und neu starte, tritt derselbe Fehler auf.
Wenn ich F5 drücke, um fortzufahren, funktioniert die Website weiterhin wie erwartet.
Wenn ich jedoch nach dem Drücken von F5 einige Augenblicke warte, stoppe und starte das Projekt neu, erhalte ich den Fehler nicht mehr, bis ich irgendeine Art von Codeänderung und Neuaufbau mache!
Das macht scheinbar keinen Sinn für mich!
Wie auch immer .. jede Hilfe wäre willkommen!
(mit VS2015 Enterprise-RC, wenn das einen Unterschied macht)