生产服务器中的DotNetOpenAuth错误
问题描述:
我正在使用最新的DotNetOpenAuth版本。在localhost中一切正常。生产服务器中的DotNetOpenAuth错误
我看到以下异常消息:
无法转换类型 'DotNetOpenAuth.OpenId.Behaviors.AXFetchAsSregTransform' 的目的为类型 'DotNetOpenAuth.OpenId.RelyingParty.IRelyingPartyBehavior'
的堆栈跟踪是:
at DotNetOpenAuth.Configuration.TypeConfigurationElement1.CreateInstance(T defaultValue, Boolean allowInternals)
at DotNetOpenAuth.Configuration.TypeConfigurationCollection1.<>c__DisplayClass4.<CreateInstances>b__2(TypeConfigurationElement1 element)
at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext()
at DotNetOpenAuth.OpenId.RelyingParty.OpenIdRelyingParty..ctor(ICryptoKeyStore cryptoKeyStore, INonceStore nonceStore)
at DotNetOpenAuth.OpenId.RelyingParty.OpenIdRelyingParty..ctor()
at Ideiota.WebApp.Modules.Login.HandleOpenIdProviderResponse()
at Ideiota.WebApp.Modules.Login.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint);`
答
但错误是在配置文件中。新版本有变化...
答
对于遇到此问题的其他人,以下是我遇到的问题。升级到这个新版本(通过我的情况下的NuGet)添加了一些新的配置,但没有删除旧的和无效的配置。
在你Web.config
:
<!-- old and invalid, remove this line -->
<add type="DotNetOpenAuth.OpenId.Behaviors.AXFetchAsSregTransform, DotNetOpenAuth" />
<!-- keep this new line -->
<add type="DotNetOpenAuth.OpenId.RelyingParty.Behaviors.AXFetchAsSregTransform,
DotNetOpenAuth.OpenId.RelyingParty" />
编辑你的问题应该被添加到原来的问题。不是一个答案。 – Shyju 2012-04-21 15:28:50