首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在IIS 7中设置对App_data的写入权限?

如何在IIS 7中设置对App_data的写入权限?
EN

Stack Overflow用户
提问于 2011-03-01 17:33:16
回答 3查看 3.9K关注 0票数 3

我需要设置一个站点来使用本地IIS 7服务器(运行windows 7)。并且我得到一个权限错误,说明我应该在App_Data文件夹上设置写权限。

我在哪做这个?我是通过IIS 7管理还是通过windows资源管理器来做到这一点?

url i用于默认asp.net网站项目:

http://localhost:10000/Account/Register.aspx?ReturnUrl=

代码语言:javascript
复制
Server Error in '/' Application.

用户没有执行此操作的权限。描述:在执行当前web请求时发生了未处理的异常。请查看堆栈跟踪以获得有关错误的更多信息,以及它起源于代码的位置。

异常详细信息: System.Data.SqlClient.SqlException:用户没有执行此操作的权限。

代码语言:javascript
复制
Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace:

    [SqlException (0x80131904): User does not have permission to perform this action.]
       System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +6277312
       System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +412
       System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1363
       System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +53
       System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) +6292062
       System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +6291977
       System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +352
       System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +506
       System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +49
       System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +6293782
       System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +78
       System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +1922
       System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +89
       System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +6296606
       System.Data.SqlClient.SqlConnection.Open() +300
       System.Web.DataAccess.SqlConnectionHolder.Open(HttpContext context, Boolean revertImpersonate) +150
       System.Web.DataAccess.SqlConnectionHelper.GetConnection(String connectionString, Boolean revertImpersonation) +4603263
       System.Web.Security.SqlMembershipProvider.CreateUser(String username, String password, String email, String passwordQuestion, String passwordAnswer, Boolean isApproved, Object providerUserKey, MembershipCreateStatus& status) +2858
       System.Web.UI.WebControls.CreateUserWizard.AttemptCreateUser() +412
       System.Web.UI.WebControls.CreateUserWizard.OnNextButtonClick(WizardNavigationEventArgs e) +226
       System.Web.UI.WebControls.Wizard.OnBubbleEvent(Object source, EventArgs e) +586
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +52
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3691
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-02 19:33:31

我必须设置站点以使用应用程序传递,然后将应用程序池更改为使用NetworkService。

票数 0
EN

Stack Overflow用户

发布于 2017-11-05 22:17:23

IIS 7.5+ (Windows 2008)的另一个可能的答案是允许组"IIS_IUSRS“写入。我相信这个组甚至包含了IIS 8+ AppPool用户,所以这是一种更持久的方式来确保对App_Data的写访问。

代码语言:javascript
复制
C:\inetpub\wwwroot> icacls App_Data /grant IIS_IUSRS:M
processed file: App_Data
Successfully processed 1 files; Failed processing 0 files

C:\inetpub\wwwroot> 
票数 2
EN

Stack Overflow用户

发布于 2022-07-22 11:46:54

如果应用程序池使用推荐的默认ApplicationPoolIdentity,则需要向IIS AppPool**_YourAppPoolName**_授予权限。

另见https://learn.microsoft.com/en-us/iis/manage/configuring-security/application-pool-identities

注意,ApplicationPoolIdentity是每个应用程序池的虚拟本地帐户,它不是SAM数据库的一部分。因此,一些应用程序拒绝选择这个帐户。

还请注意,旧的、已停用的IIS版本没有提供ApplicationPoolIdentity特性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5158114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档