【问题标题】:ASP.NET putting website onlineASP.NET 将网站上线
【发布时间】:2013-05-20 22:01:53
【问题描述】:

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

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

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

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

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

"Operation must use an updateable query."

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

我做错了什么?

【问题讨论】:

  • 当我在文本框上放一些东西并回车时,你的链接给了我Login Failed 错误。
  • 是的,这就是登录内容。它的工作。测试阶段登录,您可以测试为:用户名 - Frederik 和密码 - 123。
  • 但问题出在左下方,您将看到另一个包含用户名、文本框和添加按钮的表格。添加按钮是实际将数据添加到数据库中的按钮......或尝试这样做。顶部的表只是检查该记录是否存在于数据库中。
  • 如果我使用你提到的用户名和密码,那么它会显示Logged In,实际上我很困惑你想要什么。
  • dude.... 在页面的左下角。不在标题中。

标签: asp.net


【解决方案1】:

检查包含access数据库的文件夹的权限,access数据库和它所在的文件夹我相信应该是可写的。

查看以下链接了解更多信息 http://www.mikesdotnetting.com/Article/74/Solving-the-Operation-Must-Use-An-Updateable-Query-error

【讨论】:

  • 是的,我已经在我的网站控制面板中检查过了。访问数据库文件及其所在文件夹的权限是正确的。
  • 如果您检查了该链接,有人说它在重新启动 IIS 后有效。你可以试试吗?
  • 当网络服务器处理这个问题时,我如何重置 IIS?
  • 还可以查看此链接:blog.eriklane.com/post/2005/11/14/…,特别是第 1 点,也许您可​​以尝试一下。绝大多数情况下,这是一个权限问题,而不是其他任何问题。
  • 重置您的网络服务器:我想会有一个选项基本上说“重新启动(或启动/停止)网站”
【解决方案2】:

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

所以检查目录和文件的权限,如果需要修改它们。

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

查看link

【讨论】:

  • 数据库文件位于 Web 服务器上。并且文件夹权限设置为读/写。
  • 好的,你在用ODBC吗。,这个问题的出现有很多原因。但是permission一个是主要的,这就是我提到这个案例的原因。
  • 是 --> @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + Server.MapPath("App_Data/ABSACapital.accdb")
  • 刚刚通过网站控制面板重启了服务器。仍然得到那个......
  • 这是文件权限,如此处所述 - 但是 Access 在处于读/写模式时会创建一个临时锁定文件,因此您需要确保您的应用程序对整个 App_Code 文件夹具有写权限跨度>
【解决方案3】:

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

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

当 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 文件的任何其他文件夹)并选择属性。查找安全选项卡。如果看不到它,则需要转到我的电脑,然后单击工具并选择文件夹选项...。​​然后单击查看选项卡。滚动到底部并取消选中“使用简单文件共享(推荐)”。返回“安全”选项卡,您需要将相关帐户添加到“组或用户名”框中。单击添加...,然后单击高级,然后单击立即查找。应列出适当的帐户。双击它以将其添加到组或用户名框中,然后检查权限中的修改选项。而已。你已经完成了。”

【讨论】:

  • 是的。问题是该文件夹位于 Web 服务器上。我不能只是右键单击并说安全等。这都是在线的。我的问题不在于我在本地运行网站时。这是我将网站放在我的托管空间下的那一刻。
【解决方案4】:

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

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

感谢您的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 2023-03-16
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多