私は非常に奇妙な問題を抱えていますStructureMap.MVC5
Visual Studio でまったく新しい MVC5 プロジェクトを作成しました (ASP.net MVC プロジェクトの既定のオプションは選択されたままです)。
次に、nuget パッケージ マネージャー ( Install-Package StructureMap.MVC
) を介して structuremap.mvc5 をインストールしました。
次に、「HomeController.cs」ファイルの先頭に次のコードを追加しました。
namespace TestMVC.Controllers
{
public interface ITest
{
string TestMessage();
}
public class Test : ITest
{
public string TestMessage()
{
return "this worked again 23";
}
}
次に、コンストラクターとプライベート メンバーを次のように追加しました。
public class HomeController : Controller
{
private readonly ITest _test;
public HomeController(ITest test)
{
_test = test;
}
最後に、About アクションの結果を次のように更新しました。
public ActionResult About()
{
ViewBag.Message = _test.TestMessage();
return View();
}
プロジェクトがコンパイルされ、起動します。通常どおりデフォルトのインデックス ページが表示されますが、ブラウザーにページが返されてから 2 ~ 5 秒後に、return
このメソッドの行の "StructureMapDependencyScope.cs" で例外がスローされます。
private HttpContextBase HttpContext {
get {
var ctx = Container.TryGetInstance<HttpContextBase>();
return ctx ?? new HttpContextWrapper(System.Web.HttpContext.Current);
}
}
与えられた正確なエラーは次のとおりです。
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:
チェックは、System.Web.HttpContext.Current
この時点では確かに null です。
プロジェクトを停止して再起動すると、同じエラーが発生します。
F5 キーを押して続行すると、Web サイトは期待どおりに機能し続けます。
ただし、F5 キーを押した後、しばらく待ってからプロジェクトを停止して再起動すると、何らかのコード変更を行って再構築するまでエラーは発生しません。
これは一見私には意味がありません!
とにかく..どんな助けもいただければ幸いです!
(それが違いを生む場合は、VS2015 Enterprise RC を使用します)