Sitecore WFFM保存到数据库失败

Sitecore WFFM保存到数据库失败,sitecore,web-forms-for-marketers,Sitecore,Web Forms For Marketers,我在Sitecore日志文件中发现以下错误。在WFFM表单中的“保存到数据库”操作上。营销人员网络表单2.4修订版。141008 我有一个自定义WFMDataProvider,它只返回一个connectionString。我在生产CD上得到错误,而不是在CMS上。(我没有使用remoteWfmService)我缺少什么 3292 09:42:32 ERROR Save To Database failed. Exception: System.Reflection.ReflectionTypeL

我在Sitecore日志文件中发现以下错误。在WFFM表单中的“保存到数据库”操作上。营销人员网络表单2.4修订版。141008

我有一个自定义WFMDataProvider,它只返回一个connectionString。我在生产CD上得到错误,而不是在CMS上。(我没有使用remoteWfmService)我缺少什么

3292 09:42:32 ERROR Save To Database failed.
Exception: System.Reflection.ReflectionTypeLoadException
Message: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Source: mscorlib
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at System.Reflection.Assembly.GetTypes()
   at System.Data.Metadata.Edm.ObjectItemAttributeAssemblyLoader.LoadTypesFromAssembly()
   at System.Data.Metadata.Edm.ObjectItemAssemblyLoader.Load()
   at System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, ObjectItemLoadingSessionData loadingData)
   at System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, KnownAssembliesSet knownAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage, Object& loaderCookie, Dictionary`2& typesInLoading, List`1& errors)
   at System.Data.Metadata.Edm.ObjectItemCollection.LoadTypesExpensiveWay(Assembly assembly)
   at System.Data.Objects.DataClasses.RelationshipManager.TryGetRelationshipType(IEntityWrapper wrappedOwner, Type entityClrType, String relationshipName, AssociationType& associationType)
   at System.Data.Objects.DataClasses.RelationshipManager.GetRelatedEndInternal(String relationshipName, String targetRoleName)
   at System.Data.Objects.DataClasses.RelationshipManager.GetRelatedReference[TTargetEntity](String relationshipName, String targetRoleName)
   at Sitecore.Forms.Data.Field..ctor(IField field, Form form)
   at Sitecore.Forms.Data.DataProviders.WFMDataProvider.<>c__DisplayClass7.<InsertForm>b__6(IField f)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at Sitecore.Forms.Data.DataProviders.WFMDataProvider.InsertForm(IForm form)
   at Sitecore.Forms.Data.DataManager.InsertForm(ID formId, AdaptedResultList fields, ID sessionID, String data)
   at Sitecore.Form.Submit.SaveToDatabase.Execute(ID formid, AdaptedResultList fields, Object[] data)

3292 09:42:32 WARN  Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Exception: System.Reflection.ReflectionTypeLoadException
Message: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Source: mscorlib
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at System.Reflection.Assembly.GetTypes()
   at System.Data.Metadata.Edm.ObjectItemAttributeAssemblyLoader.LoadTypesFromAssembly()
   at System.Data.Metadata.Edm.ObjectItemAssemblyLoader.Load()
   at System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, ObjectItemLoadingSessionData loadingData)
   at System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, KnownAssembliesSet knownAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage, Object& loaderCookie, Dictionary`2& typesInLoading, List`1& errors)
   at System.Data.Metadata.Edm.ObjectItemCollection.LoadTypesExpensiveWay(Assembly assembly)
   at System.Data.Objects.DataClasses.RelationshipManager.TryGetRelationshipType(IEntityWrapper wrappedOwner, Type entityClrType, String relationshipName, AssociationType& associationType)
   at System.Data.Objects.DataClasses.RelationshipManager.GetRelatedEndInternal(String relationshipName, String targetRoleName)
   at System.Data.Objects.DataClasses.RelationshipManager.GetRelatedReference[TTargetEntity](String relationshipName, String targetRoleName)
   at Sitecore.Forms.Data.Field..ctor(IField field, Form form)
   at Sitecore.Forms.Data.DataProviders.WFMDataProvider.<>c__DisplayClass7.<InsertForm>b__6(IField f)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at Sitecore.Forms.Data.DataProviders.WFMDataProvider.InsertForm(IForm form)
   at Sitecore.Forms.Data.DataManager.InsertForm(ID formId, AdaptedResultList fields, ID sessionID, String data)
   at Sitecore.Form.Submit.SaveToDatabase.Execute(ID formid, AdaptedResultList fields, Object[] data)
   at Sitecore.Form.Core.Submit.SubmitActionManager.ExecuteSaving(ID formID, ControlResult[] list, ActionDefinition[] actions, Boolean simpleAdapt, ID sessionID)

3292 09:42:32 WARN  Web Forms for Marketers: an exception: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information. has occured while trying to execute an action.
3292 09:42:32错误保存到数据库失败。
异常:System.Reflection.ReflectionTypeLoadException
消息:无法加载一个或多个请求的类型。有关详细信息,请检索LoaderExceptions属性。
资料来源:mscorlib
位于System.Reflection.RuntimeModule.GetTypes(RuntimeModule)
在System.Reflection.RuntimeModule.GetTypes()中
在System.Reflection.Assembly.GetTypes()处
位于System.Data.Metadata.Edm.ObjectItemAttributeAsemblyLoader.LoadTypesFromAssembly()处
位于System.Data.Metadata.Edm.ObjectItemAssemblyLoader.Load()处
位于System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(程序集程序集、布尔加载引用程序集、ObjectItemLoadingSessionData加载数据)
位于System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(程序集程序集、布尔LoadReferenceAssembly、KnownAssembliesSet knownAssemblies、EdmItemCollection EdmItemCollection、Action`1 logLoadMessage、Object&loaderCookie、Dictionary`2和typesInLoading、List`1和errors)
位于System.Data.Metadata.Edm.ObjectItemCollection.LoadTypesExpensiveWay(程序集)
位于System.Data.Objects.DataClasses.RelationshipManager.TryGetRelationshipType(IEntityWrapper包装器,类型EntityClipType,字符串relationshipName,AssociationType&AssociationType)
位于System.Data.Objects.DataClasses.RelationshipManager.GetRelatedEndInternal(字符串relationshipName,字符串targetRoleName)
位于System.Data.Objects.DataClasses.RelationshipManager.GetRelatedReference[TTargetEntity](字符串relationshipName,字符串targetRoleName)
在Sitecore.Forms.Data.Field..ctor(IField字段,表单)
在Sitecore.Forms.Data.DataProviders.WFMDataProvider.c__DisplayClass7.b__6(IField f)
在System.Linq.Enumerable.WhereSelectEnumerableInterator`2.MoveNext()中
位于Sitecore.Forms.Data.DataProviders.WFMDataProvider.InsertForm(格式表单)
位于Sitecore.Forms.Data.DataManager.InsertForm(ID formId、AdaptedResultList字段、ID sessionID、字符串数据)
在Sitecore.Form.Submit.SaveToDatabase.Execute(ID formid,AdaptedResultList字段,对象[]数据)
3292 09:42:32警告无法加载一个或多个请求的类型。有关详细信息,请检索LoaderExceptions属性。
异常:System.Reflection.ReflectionTypeLoadException
消息:无法加载一个或多个请求的类型。有关详细信息,请检索LoaderExceptions属性。
资料来源:mscorlib
位于System.Reflection.RuntimeModule.GetTypes(RuntimeModule)
在System.Reflection.RuntimeModule.GetTypes()中
在System.Reflection.Assembly.GetTypes()处
位于System.Data.Metadata.Edm.ObjectItemAttributeAsemblyLoader.LoadTypesFromAssembly()处
位于System.Data.Metadata.Edm.ObjectItemAssemblyLoader.Load()处
位于System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(程序集程序集、布尔加载引用程序集、ObjectItemLoadingSessionData加载数据)
位于System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(程序集程序集、布尔LoadReferenceAssembly、KnownAssembliesSet knownAssemblies、EdmItemCollection EdmItemCollection、Action`1 logLoadMessage、Object&loaderCookie、Dictionary`2和typesInLoading、List`1和errors)
位于System.Data.Metadata.Edm.ObjectItemCollection.LoadTypesExpensiveWay(程序集)
位于System.Data.Objects.DataClasses.RelationshipManager.TryGetRelationshipType(IEntityWrapper包装器,类型EntityClipType,字符串relationshipName,AssociationType&AssociationType)
位于System.Data.Objects.DataClasses.RelationshipManager.GetRelatedEndInternal(字符串relationshipName,字符串targetRoleName)
位于System.Data.Objects.DataClasses.RelationshipManager.GetRelatedReference[TTargetEntity](字符串relationshipName,字符串targetRoleName)
在Sitecore.Forms.Data.Field..ctor(IField字段,表单)
在Sitecore.Forms.Data.DataProviders.WFMDataProvider.c__DisplayClass7.b__6(IField f)
在System.Linq.Enumerable.WhereSelectEnumerableInterator`2.MoveNext()中
位于Sitecore.Forms.Data.DataProviders.WFMDataProvider.InsertForm(格式表单)
位于Sitecore.Forms.Data.DataManager.InsertForm(ID formId、AdaptedResultList字段、ID sessionID、字符串数据)
在Sitecore.Form.Submit.SaveToDatabase.Execute(ID formid,AdaptedResultList字段,对象[]数据)
在Sitecore.Form.Core.Submit.SubmitActionManager.ExecuteSaving(ID formID、ControlResult[]列表、ActionDefinition[]操作、布尔simpleAdapt、ID sessionID)
3292 09:42:32营销人员警告Web表单:异常:无法加载一个或多个请求的类型。有关详细信息,请检索LoaderExceptions属性。在尝试执行操作时发生。

我发现MSCaptcha.dll没有部署。通常,当该文件丢失时,会出现异常。但在本例中,App_Config\include\Captcha.Config也丢失了

如果您删除这2个文件,看起来一切都可以使用表单(没有验证码),但“保存到数据库”操作不起作用,需要此MSCaptcha.dll。因此给出了问题中提到的错误。
我几乎可以肯定这就是问题所在。我只需要部署来确认。

您使用的密码中有特殊字符吗?我发现WFFM不能很好地处理这些问题,因为连接字符串被解析为实体框架连接字符串。如果是这样的话,我会尝试一个简单的密码来排除这种情况。不,密码没有任何疯狂的特殊字符。你的连接字符串是什么样子的?你检查了连接字符串中的元数据部分了吗?你发布了所有的表单并提交了操作了吗?您在
remoteWfmService
connectionString中指定的用户