代码之家  ›  专栏  ›  技术社区  ›  Brian G Swanson

从MSFT通过数据库发布向导发布后数据库出现问题

  •  3
  • Brian G Swanson  · 技术社区  · 16 年前

    我在相当多的DotNetNuke网站上工作,偶尔(我还没有弄清楚其中的共同点),当我在主机上运行脚本(通常是GoDaddy.com网站),并上传网站文件,我得到一个错误。。。我99.9%确定它与文件无关,所以不确定从数据库的何处开始。不幸的是,对于DotNetNuke,您没有得到YSOD,而是一个一般性错误,没有找到实际发生的异常的真正方法。

    我只是好奇是否有人在使用数据库发布向导时遇到过类似的部署问题,如果有,他们是如何克服的?我拥有RedGate工具集,但是像GoDaddy这样的主机不允许您直接连接到它们的服务器。。。

    7 回复  |  直到 16 年前
        1
  •  1
  •   Shawn    16 年前

    数据库发布向导生成的脚本通常需要调整,因为在处理约束时,它有时会获得错误的表/过程创建顺序。我要做的是首先备份数据库,然后运行脚本,如果出现错误,我会将该查询移到脚本的末尾。继续还原数据库并运行脚本,直到它工作为止。

        2
  •  1
  •   Patrick D'Souza ob1    11 年前

    我要看两个方面-

    1. 您是否在dbo架构中运行,并且是您的脚本数据库 使用dbo?
    2. 生产环境?(请查看sqldataprovider配置。) (设置)
        3
  •  0
  •   Ian Robinson    16 年前

    customErrors mode="Off"
    

    你能详细说明一下“上传网站文件”吗?DNN的新实例?更新现有站点?升级DNN版本?如果升级或更新--您要添加/覆盖哪些文件?

    另外,在使用GoDaddy时,是否可以检查以验证网站的身份(网络服务或asp.net计算机帐户(取决于您的IIS版本)是否有足够的权限访问网站的文件系统?它应该具有修改权限,如果要覆盖文件,则可能需要重新应用这些权限。

    • IIS6(XP,服务器2000,2003)=ASP.Net机器帐户
        4
  •  0
  •   a7drew    16 年前

    在一个新的本地数据库上测试生成的脚本(使用免费的sqlexpress产品或full-meat协议)。如果它在本地运行良好,那么你可以确信它将在其他地方运行,所有事情都是一样的。

    如果它在本地运行时会爆炸,请使用消除过程,并通过脚本执行找到有问题的代码。

    认为 我以前在数据库发布向导中遇到过这种情况。

        5
  •  0
  •   a7drew    16 年前

        6
  •  0
  •   Zach Langley    16 年前

    如果您得到的是DNN的一个错误页,那么它可能已将错误记录到eventlog表中。

        7
  •  0
  •   Mitchel Sellers    16 年前

    根据实际发生的情况和DNN向您显示的内容,您可以手动查看EventLog表内部,提取存储在那里的XML数据,并对其进行解析,以找到堆栈跟踪和有关当前特定错误的详细信息。

    不过,我发现,虽然使用数据库的备份和恢复进行部署的总体体验要好得多,但这样我100%确定所有对象都正确移动了,而且老实说,根据我的经验,它工作得更好。

    对于GoDaddy,我知道另一个主要的常见问题是不正确的文件权限,阻止DNN修改web.config文件以及它需要做的其他文件。