2015-04-01 43 views
1

在Sitecore日誌文件中出現以下錯誤。以WFFM格式保存到數據庫操作。面向營銷人員的Web表單2.4修訂版。 141008.Sitecore WFFM保存到數據庫失敗

我有一個自定義的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. 
+1

您使用的密碼中包含特殊字符嗎?我發現WFFM不能很好地處理這些問題,因爲連接字符串被分析爲實體框架連接字符串。如果是這樣,我會嘗試一個簡單的密碼來排除。 – 2015-04-01 11:33:19

+0

沒有密碼沒有任何瘋狂的特殊字符。 – 2015-04-01 11:50:03

+0

你的連接字符串是什麼樣的?你有沒有檢查連接字符串中的元數據部分? – 2015-04-01 12:05:50

回答

0

我發現MSCaptcha.dll沒有部署。通常情況下,當這個文件丟失時你會得到一個異常。但在這種情況下,App_Config \ include \ Captcha.config也缺失。

如果你刪除這2個文件它看起來像一切工作正常的表單(沒有驗證碼),但保存到數據庫操作不起作用,並需要此MSCaptcha.dll。這樣就給出了問題中提到的錯誤。 我幾乎可以肯定,這是問題。我只需要部署來確認。