Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Configuration EpiServer CMS 5 R2:自定义页面提供程序拒绝加载_Configuration_Episerver - Fatal编程技术网

Configuration EpiServer CMS 5 R2:自定义页面提供程序拒绝加载

Configuration EpiServer CMS 5 R2:自定义页面提供程序拒绝加载,configuration,episerver,Configuration,Episerver,我最近开始使用EpiServer进行一个新项目的工作,我对它完全陌生。我的一项任务要求我编写自定义页面提供程序 我已经让示例页面提供程序工作并加载。我还确保我拥有企业开发者许可证,因为该功能仅在该许可证下可用 因此,我完成了页面提供程序的框架实现,并将信息输入到测试站点上的web.config中,与XmlPageProvider示例完全相同: <pageProvider> <providers> <add entryPoint="

我最近开始使用EpiServer进行一个新项目的工作,我对它完全陌生。我的一项任务要求我编写自定义页面提供程序

我已经让示例页面提供程序工作并加载。我还确保我拥有企业开发者许可证,因为该功能仅在该许可证下可用

因此,我完成了页面提供程序的框架实现,并将信息输入到测试站点上的web.config中,与XmlPageProvider示例完全相同:

    <pageProvider>
      <providers>
        <add entryPoint="26" capabilities="Create,Edit,Delete,Move,MultiLanguage" 
          name="custom" type="MyWebsite.CustomProvider,CustomPageProvider" />
  <!--  <add filePath="~/externalPages.xml" entryPoint="26" capabilities="Create,Edit"
          name="xml" type="CodeSamples.XmlPageProvider,XmlPageProvider" />-->
      </providers>
    </pageProvider>


推荐人(无)

例外情况详情: TypeInitializationException:类型 初始值设定项 “epserver.DataFactory”抛出了一个 例外

堆栈跟踪:

[TypeInitializationException:类型 初始值设定项 “epserver.DataFactory”抛出了一个 例外情况。] EPiServer.Web.InitializationModule.Initialize(EPiServerSection 配置,设置, ConnectionString设置集合 连接字符串设置)位于 EPiServer.Web.InitializationModule.StaticInitialization() 在 EPiServer.Web.InitializationModule.Application_BeginRequest(对象 发件人,事件参数(e)位于 System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤、布尔值和同步完成)

[内部异常参数异常: 无法创建类型为的实例 MyWebsite.CustomProvider,CustomPageProvider] 在 EPiServer.Core.PageProviderMap.AddPageProvider(ProviderSettings 页面提供程序设置)位于 EPiServer.Core.PageProviderMap.LoadPageProviders(ProviderSettingsCollection pageProvidersCollection)位于 EPiServer.Core.PageProviderMap..ctor(ProviderSettingsCollection 页面提供商)在 epserver.DataFactory..cctor()

正如你所看到的,这是毫无帮助的。我尝试过获得另一个许可证,重置IIS,重新启动机箱,尝试使用reflector查看EpiServer数据工厂中的代码,但都没有成功

我知道这很简单但是什么?!这已经让我有点疯狂了两天了


Plaese Halp

我想这是我自己回答的

这真的很简单

带着反射器进去发现了这个:

private void AddPageProvider(ProviderSettings pageProviderSetting)
{
    if (Type.GetType(pageProviderSetting.Type) == null)
    {
        throw new ArgumentException("Cannot create an instance of type " + pageProviderSetting.Type);
    }
    PageProviderBase pageProvider = this.CreatePageProviderInstance(pageProviderSetting);
    pageProvider.Initialize(pageProviderSetting.Name, pageProviderSetting.Parameters);
    if (this._pageProviders.ContainsKey(UrlSegment.ReplaceIllegalChars(pageProvider.Name)))
    {
        throw new ArgumentException(string.Format("There is already a page provider with name {0} registered", pageProvider.Name));
    }
    this.AddPageProvider(pageProvider, false);
}
类型名称需要其上的完整命名空间,因此my web.config现在看起来像:

<pageProvider>
  <providers>
    <add entryPoint="26" capabilities="Create,Edit,Delete,Move,MultiLanguage" 
      name="custom" type="MyWebsite.CustomProvider,MyWebsite.CustomProvider.CustomPageProvider" />
  </providers>
</pageProvider>

我们都起来工作了


错误消息传递的另一个示例。应该说“找不到类型”可以省去很多麻烦。

我想我自己也在回答这个问题

这真的很简单

带着反射器进去发现了这个:

private void AddPageProvider(ProviderSettings pageProviderSetting)
{
    if (Type.GetType(pageProviderSetting.Type) == null)
    {
        throw new ArgumentException("Cannot create an instance of type " + pageProviderSetting.Type);
    }
    PageProviderBase pageProvider = this.CreatePageProviderInstance(pageProviderSetting);
    pageProvider.Initialize(pageProviderSetting.Name, pageProviderSetting.Parameters);
    if (this._pageProviders.ContainsKey(UrlSegment.ReplaceIllegalChars(pageProvider.Name)))
    {
        throw new ArgumentException(string.Format("There is already a page provider with name {0} registered", pageProvider.Name));
    }
    this.AddPageProvider(pageProvider, false);
}
类型名称需要其上的完整命名空间,因此my web.config现在看起来像:

<pageProvider>
  <providers>
    <add entryPoint="26" capabilities="Create,Edit,Delete,Move,MultiLanguage" 
      name="custom" type="MyWebsite.CustomProvider,MyWebsite.CustomProvider.CustomPageProvider" />
  </providers>
</pageProvider>

我们都起来工作了

错误消息传递的另一个示例。应该说“找不到类型”可以省去很多麻烦