在我正在构建的Web应用程序中,我正在使用TableStorageMembershipProvider示例代码(从here下载)进行用户管理。我正确设置了web.config,一切正常。
我现在想编写一些测试,所以我创建了一个测试项目,引用了TableStorageMembershipProvider dll,将相关部分从web.config复制到app.config并编写了一个简单的测试。问题是我第一次点击会员代码时,会抛出以下错误:
Could not load type 'Microsoft.Samples.ServiceHosting.AspProviders.TableStorageMembershipProvider' from assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
它正在尝试从System.Web ...
加载TableStorageMembershipProvider然后,我创建了两个独立的项目 - 一个控制台应用程序和一个新的MVC3 Web应用程序 - 两者都只是引用了TableStorageMembershipProvider dll。我使用指定成员资格提供程序的相同条目设置web.config和app.config并编写一行代码:
Membership.ApplicationName = "test";
MVC应用程序有效,控制台应用程序会抛出与上面相同的错误。
我尝试在控制台应用中复制所有网络应用引用,并将所有内容设置为Copy Local = true - 没有运气。撕掉我的血腥头发......
VS2010,所有项目都以.Net 4为目标
必须有一个真正简单的解决方案吗?
答案 0 :(得分:1)
默认情况下,控制台应用程序没有System.Web
的引用,MVC应用程序也是如此。我想你会发现你得到的错误信息有点误导。我认为发生的事情是TableStorageMembershipProvider
依赖于System.Web
,无论出于何种原因,它都没有流入您的控制台应用程序。
尝试向您的控制台应用添加对System.Web
的引用,并且应该修复它。
答案 1 :(得分:0)
要检查的事项:
答案 2 :(得分:0)
看起来您的配置设置为从System.Web加载类而不是您的类所在的程序集。您可以从控制台应用程序发布配置(如果您仍然遇到此问题)?