无法从控制台应用程序(和mstest)使用Azure TableStorageMembershipProvider

时间:2011-03-01 12:16:20

标签: azure asp.net-membership

在我正在构建的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为目标

必须有一个真正简单的解决方案吗?

3 个答案:

答案 0 :(得分:1)

默认情况下,控制台应用程序没有System.Web的引用,MVC应用程序也是如此。我想你会发现你得到的错误信息有点误导。我认为发生的事情是TableStorageMembershipProvider依赖于System.Web,无论出于何种原因,它都没有流入您的控制台应用程序。

尝试向您的控制台应用添加对System.Web的引用,并且应该修复它。

答案 1 :(得分:0)

要检查的事项:

  1. 您使用的是“.NET 4 Framework”吗? “.NET 4 Framework客户端配置文件” 您的控制台应用?这应该 成为第一个。
  2. 你有Azure程序集吗? 路径?

答案 2 :(得分:0)

看起来您的配置设置为从System.Web加载类而不是您的类所在的程序集。您可以从控制台应用程序发布配置(如果您仍然遇到此问题)?