0

プロジェクトをローカル マシンでデバッグ モードで実行すると、次のエラーが発生しますValue cannot be null. Parameter name: key。問題の原因を確認するためにデバッグしようとしましたが、運がほとんどありませんでした。ビューが要求されるたびに、このエラーがスローされますが、ページが読み込まれると、この問題の原因がわかりません。

エラー メッセージとスタック トレースを以下に示します。

System.ArgumentNullException was unhandled by user code
  Message=Value cannot be null.
Parameter name: key
  Source=mscorlib
  ParamName=key
  StackTrace:
       at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
       at System.Collections.Generic.Dictionary`2.ContainsKey(TKey key)
       at StructureMap.Util.Cache`2.get_Item(KEY key)
       at StructureMap.BuildSession.CreateInstance(Type pluginType)
       at StructureMap.Container.GetInstance(Type pluginType)
       at StructureMap.ObjectFactory.GetInstance(Type pluginType)
       at MvcContrib.StructureMap.StructureMapControllerFactory.CreateController(RequestContext context, String controllerName) in c:\builds\mvccontrib\src\MvcContrib.StructureMap\StructureMapControllerFactory.cs:line 13
       at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory)
       at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
       at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state)
       at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
       at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
  InnerException: 
4

1 に答える 1

1

ページで参照されている CSS または JavaScript リソースが、指定された場所に実際に存在することを確認してください。リソースが見つからない場合はStructureMapControllerFactory、ルートに一致するコントローラーのインスタンスを取得しようとすることがあります。

あなたStructureMapControllerFactoryがこのように見える場合:

public class StructureMapControllerFactory : DefaultControllerFactory
{
    protected override IController GetControllerInstance(
        RequestContext requestContext, 
        Type controllerType)
    {
        return ObjectFactory.GetInstance(controllerType) as Controller;
    }
}

次に、 を調べてrequestContext.RouteData.Values、問題の原因となっているリソースを特定できます。

于 2013-01-02T01:03:14.727 に答える