C# Webmatrix.WebData登录方法导致异常
您好,我一直在尝试将SimpleMembershipProvider集成到我的asp.net mvc应用程序中,但我似乎遇到了一些问题 这是我的web.config中的内容:C# Webmatrix.WebData登录方法导致异常,c#,asp.net-mvc,asp.net-membership,simplemembership,C#,Asp.net Mvc,Asp.net Membership,Simplemembership,您好,我一直在尝试将SimpleMembershipProvider集成到我的asp.net mvc应用程序中,但我似乎遇到了一些问题 这是我的web.config中的内容: <membership defaultProvider="SimpleMembershipProvider"> <providers> <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembe
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider"/>
</providers>
</membership>
在调用所有这些get之前,调用以下属性代码get,它工作正常:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class MembershipInitializerAttribute : ActionFilterAttribute
{
private const string CONNECTIONSTRING_NAME = "eShopConnectionString";
private const string DATABASE_TABLE_NAME = "Users";
private const string DATABASE_TABLE_IDENTIFIER_COLUMN = "UserId";
private const string DATABASE_TABLE_USER_NAME_COLUMN = "UserName";
private const bool AUTO_CREATE_TABLES = true;
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection(CONNECTIONSTRING_NAME, DATABASE_TABLE_NAME, DATABASE_TABLE_IDENTIFIER_COLUMN, DATABASE_TABLE_USER_NAME_COLUMN, AUTO_CREATE_TABLES);
}
}
}
在我输入用户名和密码后,将执行登录方法get。在我按下登录按钮后,将执行调用登录方法的登录操作get,witch将引发以下异常:
{“无法加载类型“WebMatrix.WebData.SimpleMembershipProvider”。(F:\Programare\Projects IDE\Visual Studio\2012\e-shop\Backend\WebApi\e-shop.WebApi\web.config第73行)}
在我做了一系列研究之后,许多人建议将WebMatrix.WebData Copy Local属性设置为true
在我这样做之后,应用程序启动时似乎出现了问题,因为我再也看不到可以插入凭据的屏幕了。我立即看到一个屏幕,显示以下消息:
描述:处理服务此请求所需的配置文件时出错。请查看下面的特定错误详细信息,并适当修改配置文件
解析器错误消息:在应用程序的预启动初始化阶段无法调用此方法
我做错了什么?我如何纠正它
编辑
我也得到了这个StackTrace:
您的web.config条目看起来不正确。add元素中的type属性应在逗号后包含程序集名称。下面是web.config条目的外观
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
请注意,除了具有程序集名称外,最好使用clear元素确保您没有注册多个提供程序,这可能会导致奇怪的行为。我已经添加了这两个提供程序,但问题仍然存在,有趣的是,如果我从web.config中删除配置,一切正常。我还没有到必须进行任何配置的地步,但是,如果我没有记错,从旧的成员资格提供程序中,所有配置都是在web.config中进行的,那么SimpleMembershipProvider是否仍然与SimpleMembershipProvider相同?使用SimpleMembershipProvider时,您仍然需要在web.config中进行配置设置。您是否将这些设置放在应用程序根目录下的web.config中?不要将其放在Views目录下的web.config中。
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>