C# 仅在远程服务器上获取帐户错误-Antiforgery和AppData写入权限ASP.NET MVC

C# 仅在远程服务器上获取帐户错误-Antiforgery和AppData写入权限ASP.NET MVC,c#,asp.net,asp.net-mvc,asp.net-mvc-4,sql-server-2012,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Sql Server 2012,我想我不理解MVC中的帐户(登录/注册)是如何工作的。在dev服务器上,一切正常。部署应用程序时,我会遇到几个错误: 创建App_数据子目录时拒绝访问 及 无法解密防伪令牌。如果此应用程序由Web场或群集承载,请确保所有计算机都运行相同版本的ASP.NET网页,并且配置指定了显式加密和验证密钥。无法在群集中使用自动生成 我可以通过在远程服务器上启用写权限来修复第一个错误,但每次发布时它都会还原权限。我不认为我在我的应用程序中的任何地方都使用了sqlexpress,因为我的连接字符串用于SQL s

我想我不理解MVC中的帐户(登录/注册)是如何工作的。在dev服务器上,一切正常。部署应用程序时,我会遇到几个错误:

创建App_数据子目录时拒绝访问

无法解密防伪令牌。如果此应用程序由Web场或群集承载,请确保所有计算机都运行相同版本的ASP.NET网页,并且配置指定了显式加密和验证密钥。无法在群集中使用自动生成

我可以通过在远程服务器上启用写权限来修复第一个错误,但每次发布时它都会还原权限。我不认为我在我的应用程序中的任何地方都使用了sqlexpress,因为我的连接字符串用于SQL server 2012数据库,但我不确定MVC是否会仅为帐户控件创建一个连接字符串,请参见下面的连接字符串:

<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=MANDRAKE.arvixe.com;Initial Catalog=DB1Name;Integrated Security=False;User Id=Username;Password=***;MultipleActiveResultSets=True" />
<add name="BudgetingEntities" connectionString="metadata=res://*/Models.BudgetModel.csdl|res://*/Models.BudgetModel.ssdl|res://*/Models.BudgetModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MANDRAKE.arvixe.com;initial catalog=DB2Name;user id=Username;password=***;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

另外需要注意的是,我最初在arvixe服务器上将其设置为一个网站,然后我添加了一个域并发布到该域。这就是问题发生的时候,但我不知道这会有什么关联。我还向用户注册页面添加了captcha控件,但当我删除该代码时,错误仍然存在


任何想法都会有帮助,我不知道我是否需要显式设置machinekey配置(我以前不需要这样做,所以我认为我不需要这样做)。

仅供参考,它与我在arvixe服务器上的用户帐户有关。我不知道他们到底做了什么,但他们告诉我权限不知怎么搞砸了。我仍然不确定到底发生了什么。我试图实现验证码功能,但它似乎把一切都搞砸了,可能是因为关于如何将captcha添加到ASP.NET MVC项目的教程已经过时。

我尝试将机器密钥添加到web.config文件,但出现了以下错误:提供的防伪令牌是针对与当前用户不同的基于声明的用户。