0

我是 ASP.NET 新手,在尝试使网站联机时遇到问题。当我在 Visual Studio 2012 中运行网站时,我的网站运行良好。

我已经把网站放到网上了,你可以去看看: http: //keowns.bebbosoft.co.za/

在左下角,您将看到用户名、文本框和添加按钮。

当您键入一些文本时,该添加按钮中的文本会在 Access 数据库中添加一条新记录。

正如我所说,这在我调试时有效,但是当我将网站上线时,您会在内容中看到此错误:

"Operation must use an updateable query."

Web 服务器中的文件夹设置正确(权限):

在此处输入图像描述

我究竟做错了什么?

4

4 回答 4

2

检查包含访问数据库的文件夹的权限,我相信访问数据库及其所在的文件夹应该是可写的。

有关更多信息,请参阅以下链接 http://www.mikesdotnetting.com/Article/74/Solving-the-Operation-Must-Use-An-Updateable-Query-error

于 2013-05-20T13:12:48.083 回答
2

一个很可能的原因是运行程序的用户没有对数据库文件的读写访问权限,特别是如果它位于程序文件文件夹中。

因此,请检查目录和文件权限,并在需要时对其进行修改。

有时权限问题得到解决Restarting the server,必须尝试。

检查此链接

于 2013-05-20T13:14:17.203 回答
1

你看过http://www.mikesdotnetting.com/Article/74/Solving-the-Operation-Must-Use-An-Updateable-Query-error吗?

“令人难以置信的神秘操作必须使用可更新查询错误是刚开始使用 Access 和 ASP.NET 的开发人员的祸根。您已经完成了代码,将数据库文件放在 App_Data 文件夹中(或者至少,您应该已经完成),并尝试运行一个插入或更新记录的页面,这一切都停止了。这篇简短的文章解释了错误的原因,以及阻止它再次发生所需的步骤。

在多用户环境中部署 Jet 4.0 数据库(由“Access”mdb 文件表示的实际数据库类型)时,只要打开数据库,就会创建一个 .ldb 文件。.ldb 文件包含详细信息,包括谁打开了文件,主要用于防止打开的记录被其他用户写入。在 ASP.NET 应用程序的上下文中,“用户”是谁将取决于平台:对于 XP Pro 机器,用户是 ASPNET 帐户。在 Windows Server 2003、2008 和 Vista 上,它是 NETWORK SERVICE 帐户。但是,如果您启用了 ASP.NET 模拟,则默认用户帐户将是 IUSR_machinename 或您应用的任何帐户。如果您不确定您的 ASP.NET 应用程序在哪个帐户下运行,Environment.UserName 将返回它。为了能够创造,写入和删除所需的 .ldb 文件,相关用户需要 .mdb 文件所在文件夹的 MODIFY 权限。要设置此权限,请右键单击 App_Data 文件夹(或您将 mdb 文件放入的任何其他文件夹) 并选择属性。查找安全选项卡。如果看不到它,则需要转到我的电脑,然后单击工具并选择文件夹选项...。​​然后单击查看选项卡。滚动到底部并取消选中“使用简单文件共享(推荐)”。返回“安全”选项卡,您需要将相关帐户添加到“组或用户名”框中。单击添加...,然后单击高级,然后单击立即查找。应列出适当的帐户。双击它以将其添加到组或用户名框中,然后检查权限中的修改选项。而已。你完了。”

于 2013-05-20T13:23:57.883 回答
0

谢谢你们给我一些见解......但是在努力阅读你给我的链接之后,我做了那些事情,但它仍然没有用。我的解决方法是:将 web.config 文件更改为如下所示:

<configuration>
<system.web>
    <identity impersonate="true"/>
</system.web>
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
<system.webServer>
</configuration>

谢谢你的帮助!

于 2013-05-20T14:01:53.893 回答