在我的web.config文件中,我有:
<siteMap defaultProvider="MvcSiteMapProvider" enabled="true">
<providers>
<clear />
<add name="MvcSiteMapProvider"
type="MvcSiteMapProvider.DefaultSiteMapProvider, MvcSiteMapProvider"
siteMapFile="~/Mvc.Sitemap"
securityTrimmingEnabled="true"
cacheDuration="5"
enableLocalization="false"
scanAssembliesForSiteMapNodes="true"
excludeAssembliesForScan=""
includeAssembliesForScan=""
attributesToIgnore=""
nodeKeyGenerator="MvcSiteMapProvider.DefaultNodeKeyGenerator, MvcSiteMapProvider"
controllerTypeResolver="MvcSiteMapProvider.DefaultControllerTypeResolver, MvcSiteMapProvider"
actionMethodParameterResolver="MvcSiteMapProvider.DefaultActionMethodParameterResolver, MvcSiteMapProvider"
aclModule="MvcSiteMapProvider.DefaultAclModule, MvcSiteMapProvider"
siteMapNodeUrlResolver="MvcSiteMapProvider.DefaultSiteMapNodeUrlResolver, MvcSiteMapProvider"
siteMapNodeVisibilityProvider="ekmProspector.web.SiteMapProviders.AuthenticatedVisibilityProvider, ekmProspector"
siteMapProviderEventHandler="MvcSiteMapProvider.DefaultSiteMapProviderEventHandler, MvcSiteMapProvider"
/>
</providers>
</siteMap>
我还有MvcSiteMap库dll的项目引用,这是一个名为mvc.sitemap的站点地图。 页面命名空间也如下所示:
<pages>
<namespaces>
...
<add namespace="MvcSiteMapProvider.Web.Html"/>
<add namespace="MvcSiteMapProvider.Web.Html.Models"/>
</namespaces>
</pages>
但是,每当我浏览MVC3项目中的任何页面时,都会出现以下错误:
配置错误说明:An 处理过程中出错 需要的配置文件 服务这个请求。请查阅 下面的具体错误详情和 修改配置文件 适当。
分析程序错误消息:值不能 空值。参数名称:type
源错误指向这一行:
Line 91: <clear />
Line 92: <add name="MvcSiteMapProvider"
Line 93: type="MvcSiteMapProvider.DefaultSiteMapProvider, MvcSiteMapProvider"
为什么我收到此错误?
答案 0 :(得分:7)
我最终发现了自己的问题所在。 MvcSiteMap提供程序库使用反射Activator.Createinstance()方法调用您在站点地图文件中设置的提供程序。如果提供程序的格式不正确,则Activator会因上述消息而失败。
例如,visibilityprovider的站点地图中的值应为“fullqualifiednamespace.ProviderClass,AssemblyName”。
e.g. "MyApplicationNamespace.AuthenticationVisibilityProvider, MyApplication"