WordPress首页一片空白[终极解决办法]

作者:freethy 发布于:2012-3-21 13:23 Wednesday

下载了最新的WordPress,在修改了wp-config.php之后,正常进入WP后台,经过一番设置之后,也同样发表了一篇日志……不过在查看WordPress首页和日志页均显示为空白网页。

于是搜索相关问题 http://wordpress.org.cn/archiver/tid-6144.html

描述症状所遇一样:

一,主页空白
二,后台一切正常
三,空白主页源码如下

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8"></HEAD>
<BODY></BODY></HTML>

其解决方法是在 后台管理-->设置-->输出 如果浏览器请求压缩传输数据,WordPress 应将数据以 gzip 方式压缩后再传输给浏览器,以便大幅缩短传输时间。

不过我是下载的最新版本,没有这个设置项。

还有的解决方法是:很有可能是因为安装了2.2而且使用了2.3的主题造成的

采用的默认主题,根本动都没动。

不过有人提出了一点:WP对目录权限有什么要求

虽然没人给出解答,不过我留意了一下。

原来我的WordPress程序是保存在服务器根目录下“web”文件夹内的“cnbruce.com”文件夹中的

D磁盘目录
-WEB文件夹
-cnbruce.com文件夹
-WordPress程序文件

因为做域名指向是指向到“cnbruce.com文件夹”,所以仅对该文件夹添加了“IIS来宾用户”,而对于“WEB文件夹”却没有添加。

所以,解决方法是:为WordPress程序所在文件夹的上层文件夹添加“IIS来宾用户”访问权限

或者不为“WEB文件夹”添加来宾用户访问权限,而是修改WordPress程序,将“index.php”中的“require('./wp-blog-header.php');”修改为“require('wp-blog-header.php');”

至此,“WordPress安装成功后首页一片空白”的问题解决。

 

 

 

评论(32) 引用(0) 浏览(5602)

@@IDENTITY与SCOPE_IDENTITY()

作者:freethy 发布于:2012-3-12 13:22 Monday

在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值。如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL。如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返回最后生成的标识值。如果语句触发了一个或多个触发器,该触发器又执行了生成标识值的插入操作,那么,在语句执行后立即调用 @@IDENTITY 将返回触发器生成的最后一个标识值。如果对包含标识列的表执行插入操作后触发了触发器,并且触发器对另一个没有标识列的表执行了插入操作,则 @@IDENTITY 将返回第一次插入的标识值。出现 INSERT 或 SELECT INTO 语句失败或大容量复制失败,或者事务被回滚的情况时,@@IDENTITY 值不会恢复为以前的设置。

如果语句和事务失败,它们会更改表的当前标识,从而使标识列中的值出现不连贯现象。即使未提交试图向表中插入值的事务,也永远无法回滚标识值。例如,如果因 IGNORE_DUP_KEY 冲突而导致 INSERT 语句失败,表的当前标识值仍然会增加。

@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 是相似的函数,因为他们都返回插入到表的 IDENTITY 列的最后一个值。

@@IDENTITY 和 SCOPE_IDENTITY 可以返回当前会话中的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY 只在当前作用域内返回值,而 @@IDENTITY 不限于特定的作用域。

IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 可以返回任何会话和任何作用域中为特定表生成的标识值。

@@IDENTITY 函数的作用域是执行该函数的本地服务器上的当前会话。此函数不能应用于远程或链接服务器。若要获得其他服务器上的标识值,请在远程服务器或链接服务器上执行存储过程,并使(在远程或链接服务器的环境中执行的)该存储过程收集标识值,并将其返回本地服务器上的发出调用的连接。

以下示例向包含标识列 (LocationID) 的表中插入一行,并使用 @@IDENTITY 显示新行中使用的标识值:

USE AdventureWorks;
GO
--Display the value of LocationID in the last row in the table.
SELECT MAX(LocationID) FROM Production.Location;
GO
INSERT INTO Production.Location (Name, CostRate, Availability, ModifiedDate)
VALUES ('Damaged Goods', 5, 2.5, GETDATE());
GO
SELECT @@IDENTITY AS 'Identity';
GO
--Display the value of LocationID of the newly inserted row.
SELECT MAX(LocationID) FROM Production.Location;
GO

补充:
我们要慎用@@IDENTITY,原因是 @@IDENTITY 它总是获取最后一条变更数据的自增字段的值,
而忽略了进行变更操作所在的范围约束。比如,我有表 A 和表 B 两个表,现在我在表 A 上定义了一个Insert触发器,当在表 A 中插入一条数据时,自动在表 B 也插入一条数据。此时,大家注意,有两个原子操作:在A中插入一条数据, 接着在B中随后插入一条数据。

现在我们想下,假设上面表 A 和表 B 都有IDENTITY自增域,那么我们在表 A 插入一条数据后,使用了 SELECT @@IDENTITY 输出时,输出的到底是 A 还是 B 的自增域的值呢?  答案很明显,是谁最后插入就输出谁,那么就是 B 了。于是,我本意是想得到 A 的自增域值,结果得到了 B 的自增域值,一只 BUG 随之诞生,搞不好还会影响到整个系统数据的混乱。

因此,对于这种情况,建议大家慎用 @@IDENTITY,而尽量采用 SCOPE_IDENTITY()函数替换之。SCOPE_IDENTITY() 也是得到最后一条自增域的值,但是它是仅限在一个操作范围之内,而不@@IDENTITY 是取全局操作的最后一步操作所产生的自增域的值的。

 

作者写的真的是太好了

from:http://www.cnblogs.com/lovemyth/archive/2007/03/14/674584.html

 

评论(0) 引用(0) 浏览(1316)

设置64位机器上的IIS(IIS6/IIS7)兼容32位程序

作者:freethy 发布于:2012-3-9 13:21 Friday

由于64位操作系统不支持Microsoft OLE DB Provider for Jet驱动程序,也不支持更早的Microsoft Access Driver (*.mdb)方式连接。所以用于 Access 和 Excel 数据库的 Microsoft OLE DB Provider for Jet 在 64 位版本中不可用,也就是说,如下两种连接字符串都已经无法正常工作了:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.mappath(db)

"driver=Microsoft Access Driver (*.mdb);DBQ="&Server.MapPath(db)

既然这样,就只能使用一个办法,将IIS的运行环境设置为32位:

IIS6上的做法:

1.命令行键入:

cscript.exe %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

即设置IIS6允许32位程序运行在64位机器上

2.重新注册.net FrameWorks

%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

3.完成之后,应该会看到多出一个32位的asp.net,如下图:

 

将其设置为允许,缺点:这样会使整个IIS上的所有站点都以32位兼容方式运行

 

       然后再运行一下:%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

      这样就可以跑32位的程序了。

不过在IIS7上的做法要简单很多:

应用程序池,高级设置-->允许32位应用程序,如下图:

 

最好专门针对兼容32位应用驱动新建一个应用池。

评论(21) 引用(0) 浏览(2481)

Powered by emlog 苏ICP备11068260号-3