当您连接到 Microsoft Access 数据库从 Microsoft ASP.NET 应用您收到以下错误信息:
System.Data.OleDb.OleDbException: 错误
在模拟的帐户下运行 ASP.NET Web 应用程序具有
模拟 元素在 Web.config 文件中设置为
true ,并且已在 Web.config 文件中中, 设置
Windows
身份验证 元素。 在 ASP.NET Web 应用程序中代码连接到 Access 数据库中。 建立连接时, Microsoft Jet OLE DB 以下目录中在临时文件夹中创建临时文件:
如果模拟的用户帐户不具有在 Temp 文件夹中启用的读 / 写权限,您将收到"症状"一节中提到错误消息。
文档和 Settings/
ServerName /ASPNET/Local 设置
其中,
ServerName 是服务器的名称。
如果模拟的用户帐户不具有在 Temp 文件夹中启用的读 / 写权限,您将收到"症状"一节中提到错误消息。
要解决此问题,启用模拟的用户帐户在 Temp 文件夹的读 / 写权限。 要这样做,请按下列步骤操作:
- WindowsXP、Windows 2003用户请在“C:/Windows/Temp”目录添加一个有权限的“Authenticated Users”用户即可!
Vista用户请在“C:/Windows/ServiceProfiles/NetworkService/AppData/Local/Temp”目录添加一个有权限的“Authenticated Users”用户即可!
具体设置权限步骤:右击Temp文件夹,选择“属性”->“安全”->“编辑”->“添加”,在下面的“输入对象名称来选择”中输入Authenticated Users,确定 -> 返回到“Temp 的权限”,将Authenticated Users的权限中的完全控制给勾上。
右键单击 Temp 文件夹,然后单击 属性 。 - 在 属性 对话框单击 安全 选项卡。
- 在 安全 选项卡上单击 添加 ,然后键入 ServerName / UserAccount 在 选择用户或组 文本框中,其中 ServerName 是您的服务器的名称,其中 UserAccount 是模拟的帐户的名称。 单击 确定 。
- 单击以选中 读取 和 写入 下复选框,然后单击 确定 。
重现该问题的步骤
<script type="text/javascript"></script>- 创建新的 ASP.NET Web 应用程序。 要这样做,请按下列步骤操作:
- 启动 Microsoft Visual Studio.NET。
- 创建新的 Microsoft Visual C#.NET 或新的 Microsoft Visual Basic.NET ASP.NET Web 应用程序。 将该项目命名 SampleApplication 。
- 该代码在 SampleApplication 文件连接到 Access 数据库的写入。
- 将 身份验证 模式设置为 Windows 中。 要这样做,请按下列步骤操作:
- 在解决方案资源管理器中,双击 Web.config 。
- 在该 <System.web>部分中,按以下方式修改 authentication 元素:
<authentication mode="Windows" />
- 将 模拟 元素设置为 true 。 要这样做,请按下列步骤操作:
- 在该 <System.web>部分,如下所示添加 模拟 元素:
<identity impersonate="true" />
- 保存,并关闭 Web.config 文件。
- 在该 <System.web>部分,如下所示添加 模拟 元素:
- 在 生成 菜单中上, 单击 生成 SampleApplication 。
- 对应用程序设置 身份验证 方法。 要这样做,请按下列步骤操作:
- 单击 开始 ,然后单击 运行 。
- 在 打开 文本框中键入 inetmgr ,然后单击 确定 。
- 在 Internet Information Services 对话框,单击 默认 Web 站点 。
- 右键单击 SampleApplication ,然后单击 属性 。
- 在 SampleApplication 属性 对话框单击 目录安全性 选项卡。
- 在 匿名访问和身份验证控制 ,下单击 编辑 。
- 在此 身份验证方法 对话框单击以选中 匿名访问 复选框。 请确保 用户名称 文本框具有该 UserAccount 值的 UserAccount 是一个 Windows 帐户。 单击 确定 两次,然后关闭 Internet Information Services 对话框。
- 请确保的读 / 写权限 UserAccount 未启用以下文件夹中:
文档 settings/ ServerName /ASPNET/Local Settings/Temp
- 匿名身份验证 : IIS 使用 IIS 匿名用户帐户 (默认帐户是 IUSR _ computername)。
- 集成的身份验证 : IIS 使用当前登录的用户的用户帐户。
- 基本身份验证 : IIS 使用指定用户的帐户。
- 运行该应用程序。 为此,键入 http:// <ServerName > /SampleApplication/Webform1.aspx在 Web 浏览器 地址 栏中,然后单击 转到 。