3

我在相当多的 DotNetNuke 站点上工作,偶尔(我还没有弄清楚共同因素),当我使用 Microsoft 的数据库发布向导为我在开发服务器上创建的站点创建脚本后,运行主机上的脚本(通常是 GoDaddy.com),并上传站点文件,我收到一个错误...我 99.9% 确定它与文件无关,所以不确定从数据库的哪里开始。不幸的是,使用 DotNetNuke 你没有得到 YSOD,而是一个通用错误,没有真正的方法来找到发生的实际异常。

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

4

7 回答 7

1

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

于 2008-08-18T19:39:33.130 回答
1

我会关注两个领域 -

  1. 您是否在 dbo 模式中运行,并且您的脚本数据库是否使用 dbo?
  2. 您是在开发环境还是生产环境中使用对象限定符?(查看您的 sqldataprovider 配置设置)
于 2008-09-05T19:28:38.540 回答
0

You should be able to expose the underlying error message by setting the following in the web.config:

customErrors mode="Off"

Could you elaborate on "and uploading the site files"? New instance of DNN? updating an existing site? upgrading DNN version? If upgrade or update -- what files are you adding/overwriting?

Also, when using GoDaddy, can you check to verify that the web site's identity (network service or asp.net machine account depending on your IIS version) has sufficient permissions to the website's file system? It should have modify permissions and these may need to be reapplied if you are overwriting files.

  • IIS6 (XP, Server 2000, 2003) = ASP.Net Machine Account
  • IIS7 (Vista, Server 2008) = Network Service
于 2008-08-19T15:10:29.820 回答
0

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

然而,我发现虽然我在使用数据库备份和恢复的部署方面获得了更好的整体体验,但这样我 100% 确信所有对象都正确移动,老实说,它在我的经验中效果更好。

使用 GoDaddy,我知道另一个常见的主要问题是文件权限不正确,这会阻止 DNN 修改 web.config 和它需要执行的其他文件。

于 2008-09-17T05:39:29.527 回答
0

如果您收到 DNN 的错误页面之一,它可能已将错误记录到事件日志表中。

于 2008-09-04T20:54:35.473 回答
0

Test your generated scripts on a new local database (using the free SQL Express product or the full meal deal). If it runs fine locally, then you can be confident that it will run elsewhere, all things being equal.

If it bombs when you run it locally, use the process of elimination and work your way through the script execution to find the offending code.

My hunch is that the order of scripts could be off. I think I've had that happen before with the database publishing wizard.

于 2008-09-04T02:49:05.960 回答
0

Just read your follow up. In every case that I've had your problem, it was always something to do with the connection string in web.config. Even after hours of staring at it, it was always a connection string issue in web.config. Get up, take a walk and then come back.

于 2008-09-04T02:51:05.377 回答