【发布时间】:2015-03-03 04:21:09
【问题描述】:
我有一个 ASP.Net Web Forms 应用程序,我现在正在为它编写一些单元测试。 测试代码在以下行抛出 TypeLoadException:
if (Membership.GetUser("some name") == null)
异常文本显示无法加载程序集“System.Web,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”中的“System.Web.Providers.DefaultMembershipProvider”。当应用程序正常运行时,在内置测试服务器和实时 IIS 服务器上一切正常。我只是将 Web 表单应用程序中的 Web.config 复制到了单元测试项目中。我还应该提到其他数据库连接(例如实体框架)工作正常。这是相关的配置部分:
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<clear />
<add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="10" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" passwordFormat="Hashed" />
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
</providers>
</membership>
我还在单元测试项目中设置了对 System.Web 的引用,但我仍然得到提到的异常。有人知道为什么这在单元测试项目中不起作用吗?
更新:以下行工作正常,所以原因一定是在我的 DefaultMembershipProvider 的初始化中:
System.Web.Providers.DefaultMembershipProvider test= new System.Web.Providers.DefaultMembershipProvider();
【问题讨论】:
标签: asp.net unit-testing asp.net-membership membership-provider