这两天在摆弄刚刚到手的夏新E850,哈哈,总算有机会体验一下Windows Mobile编程了,当然一开始总是从最基础的开始——学习如何使用ActiveSync。厂商提供的版本是4.1的,似乎有点早,但一开始也没有注意,就安装在机器上了,尝试同步通讯录,可是每次总是不成功,而且报的错误比较怪,见下:
中文版
ActiveSync在台式机上遇到问题,支持代码:85010014
英文版
ActiveSync encountered a problem on the desktop. Support Code: 85010014
平时其他客户的机器上出问题我倒不是很在乎,如今自己机器遇到这种问题,这个case不做也不行了,唉,只能硬着头皮上阿。
先请教了一位同事,同事说可能需要重建parnership,就是说把Desktop和Mobile上原来建的Profile都删掉,然后重新跟着向导再建一遍Profile,但试了好几次都不行,同事也没啥办法了,于是开始在网上寻找信息。
很幸运,找到了一篇Troubleshooting的帖子: http://kb.palm.com/SRVS/CGI-BIN/WEBCGI.EXE?New,Kb=PalmSupportKB,ts=Palm_External2001,Case=obj(41810)
在这篇帖子中,有好几种workaround,于是我只能一个一个试。
首先,我注意到了一个叫做wceslog.log的文件,位于%temp%目录下,打开这个文件一看,发现了如下信息:
可以看到有多个函数报 0x80004005错误,即Access Denied(拒绝访问),看来权限方面有问题,根据这一信息,找到了那篇帖子中的一个相关方法:(以下是翻译,有部分修改)
1. 断开Windows Mobile设备
2. 在桌面PC上:点击 开始菜单 > 所有程序(或程序) > 附件 > 写字板
3. 在写字板的文件菜单中,选择“打开”
4. 在Open窗口的底部,将文件类型设置为"所有文件"
5. 在文件名文本框中,输入%temp%. 这将会显示你的系统临时目录
6. 定位并打开WCESLog.log
7. 从编辑菜单中选择“查找”
8. 输入DoInitOOMSession,按查找
9. 你是否发现以下信息?
* 没有: 继续搜索
* 是: 如果找到,你会看到如下信息
02/28/2006 19:29:29.755 p(432) t(3320) TraceToFile -> ERROR in COomSession::DoInitOOMSession : hr = 0x80004005 - OomSession.cpp(175)
10. 退出写字板,但请不要保存文件。
11. WCESLOG文件中的"DoInitOOMSession"表示你的防病毒软件阻止了ActiveSync进行同步。请确认你的反病毒软件是否允许你禁用script blocking
12. 你是否可以禁用反病毒软件中的script blocking?
* 是: 禁用脚本阻止。尝试同步smartphone.
* 否: 如果你的防病毒软件不允许你禁用script blocking, 你可以卸载一个DLL来禁用该功能。
13. 现在我们打算删除可能阻止同步的那个DLL,但仅在你无法禁用script blocking的情况下使用接下来的步骤
14. 在开始菜单中, 选择运行
15. 输入regedit点击确定
16. 在注册表编辑器中,打开HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0006F03A-0000-0000-C000-000000000046}\InprocServer32.
17. 当你点击InprocServer32, 右面的栏中将会显示一个列表. 第一条就是(Default).
18. 右击(Default)项,选择删除
19. 尝试同步你的smartphone.
但用了以上方法之后还是不行。。。
之后发现原来可以通过修复Outlook安装来解决这个问题,于是就抱着试试看的心理试了一把。。。奇迹出现了,安装程序运行完之后,一切都好了,哈哈。后来回过头来想想,可能问题出在这里——我的机器上既安装了Office 2007又安装了Office 2003,而且Office 2003是在Office 2007之后安装的,所以可能覆盖了一些相关的DLL,所以会导致出现问题。
希望以上经验对大家有用,当然具体问题具体分析,我个人还是比较推荐大家看 http://kb.palm.com/SRVS/CGI-BIN/WEBCGI.EXE?New,Kb=PalmSupportKB,ts=Palm_External2001,Case=obj(41810)
中文版
ActiveSync在台式机上遇到问题,支持代码:85010014
英文版
ActiveSync encountered a problem on the desktop. Support Code: 85010014
平时其他客户的机器上出问题我倒不是很在乎,如今自己机器遇到这种问题,这个case不做也不行了,唉,只能硬着头皮上阿。
先请教了一位同事,同事说可能需要重建parnership,就是说把Desktop和Mobile上原来建的Profile都删掉,然后重新跟着向导再建一遍Profile,但试了好几次都不行,同事也没啥办法了,于是开始在网上寻找信息。
很幸运,找到了一篇Troubleshooting的帖子: http://kb.palm.com/SRVS/CGI-BIN/WEBCGI.EXE?New,Kb=PalmSupportKB,ts=Palm_External2001,Case=obj(41810)
在这篇帖子中,有好几种workaround,于是我只能一个一个试。
首先,我注意到了一个叫做wceslog.log的文件,位于%temp%目录下,打开这个文件一看,发现了如下信息:
04
/
12
/
2007
08
:
02
:
38.015
p(
4932
) t(
2280
) DbApi -> CDb::_Open - hr
=
0x80004005 - db.cpp(
439
)
04 / 12 / 2007 08 : 02 : 38.015 p( 4932 ) t( 2280 ) DbApi -> CDb::_Open(0x46d614 , &C:\Documents and Settings\Tony Qu\Application Data\Microsoft\ActiveSync\Profiles\WM_Tony_Qu\user.sdf , 0 ) - returning 0x80004005 - db.cpp( 469 )
04 / 12 / 2007 08 : 02 : 38.015 p( 4932 ) t( 2280 ) DbApi -> CDb::OpenDatabase - hr = 0x80004005 - db.cpp( 678 )
04 / 12 / 2007 08 : 02 : 38.015 p( 4932 ) t( 2280 ) DbApi -> CDb::OpenDatabase(&C:\Documents and Settings\Tony Qu\Application Data\Microsoft\ActiveSync\Profiles\WM_Tony_Qu\user.sdf , 0 , 0x461f76c) - returning 0x80004005 , *ppDb == 0x0 - db.cpp( 717 )
04 / 12 / 2007 08 : 02 : 48.281 p( 4932 ) t( 2124 ) TraceToFile -> ERROR in COomSession::DoInitOOMSession : hr = 0x80004005 - OomSession.cpp( 175 )
04 / 12 / 2007 08 : 02 : 48.281 p( 4932 ) t( 2280 ) TraceToFile -> ERROR in CProfileSession::_CreateNewProfile : hr = 0x80004005 - ProfileSession.cpp( 778 )
04 / 12 / 2007 08 : 02 : 51.359 p( 4932 ) t( 2280 ) TraceToFile -> ERROR in CProfileSession::GetChangeTrackingVariables : hr = 0x80004005 - ProfileSession.cpp( 933 )
04 / 12 / 2007 08 : 02 : 51.359 p( 4932 ) t( 2280 ) TraceToFile -> ERROR in CMsgProcessor::ProcessMessage : hr = 0x80004005 - MsgProcessor.cpp( 577 )
04 / 12 / 2007 08 : 02 : 51.359 p( 4932 ) t( 2280 ) TraceToFile -> ERROR in CService::_HttpPostMethod : hr = 0x80004005 - Service.cpp( 1259 )
04 / 12 / 2007 08 : 02 : 51.359 p( 4932 ) t( 2280 ) SyncEngPerf -> Sync Statistics: Finished processing request - Service.cpp( 1176 )
04 / 12 / 2007 08 : 02 : 38.015 p( 4932 ) t( 2280 ) DbApi -> CDb::_Open(0x46d614 , &C:\Documents and Settings\Tony Qu\Application Data\Microsoft\ActiveSync\Profiles\WM_Tony_Qu\user.sdf , 0 ) - returning 0x80004005 - db.cpp( 469 )
04 / 12 / 2007 08 : 02 : 38.015 p( 4932 ) t( 2280 ) DbApi -> CDb::OpenDatabase - hr = 0x80004005 - db.cpp( 678 )
04 / 12 / 2007 08 : 02 : 38.015 p( 4932 ) t( 2280 ) DbApi -> CDb::OpenDatabase(&C:\Documents and Settings\Tony Qu\Application Data\Microsoft\ActiveSync\Profiles\WM_Tony_Qu\user.sdf , 0 , 0x461f76c) - returning 0x80004005 , *ppDb == 0x0 - db.cpp( 717 )
04 / 12 / 2007 08 : 02 : 48.281 p( 4932 ) t( 2124 ) TraceToFile -> ERROR in COomSession::DoInitOOMSession : hr = 0x80004005 - OomSession.cpp( 175 )
04 / 12 / 2007 08 : 02 : 48.281 p( 4932 ) t( 2280 ) TraceToFile -> ERROR in CProfileSession::_CreateNewProfile : hr = 0x80004005 - ProfileSession.cpp( 778 )
04 / 12 / 2007 08 : 02 : 51.359 p( 4932 ) t( 2280 ) TraceToFile -> ERROR in CProfileSession::GetChangeTrackingVariables : hr = 0x80004005 - ProfileSession.cpp( 933 )
04 / 12 / 2007 08 : 02 : 51.359 p( 4932 ) t( 2280 ) TraceToFile -> ERROR in CMsgProcessor::ProcessMessage : hr = 0x80004005 - MsgProcessor.cpp( 577 )
04 / 12 / 2007 08 : 02 : 51.359 p( 4932 ) t( 2280 ) TraceToFile -> ERROR in CService::_HttpPostMethod : hr = 0x80004005 - Service.cpp( 1259 )
04 / 12 / 2007 08 : 02 : 51.359 p( 4932 ) t( 2280 ) SyncEngPerf -> Sync Statistics: Finished processing request - Service.cpp( 1176 )
可以看到有多个函数报 0x80004005错误,即Access Denied(拒绝访问),看来权限方面有问题,根据这一信息,找到了那篇帖子中的一个相关方法:(以下是翻译,有部分修改)
1. 断开Windows Mobile设备
2. 在桌面PC上:点击 开始菜单 > 所有程序(或程序) > 附件 > 写字板
3. 在写字板的文件菜单中,选择“打开”
4. 在Open窗口的底部,将文件类型设置为"所有文件"
5. 在文件名文本框中,输入%temp%. 这将会显示你的系统临时目录
6. 定位并打开WCESLog.log
7. 从编辑菜单中选择“查找”
8. 输入DoInitOOMSession,按查找
9. 你是否发现以下信息?
* 没有: 继续搜索
* 是: 如果找到,你会看到如下信息
02/28/2006 19:29:29.755 p(432) t(3320) TraceToFile -> ERROR in COomSession::DoInitOOMSession : hr = 0x80004005 - OomSession.cpp(175)
10. 退出写字板,但请不要保存文件。
11. WCESLOG文件中的"DoInitOOMSession"表示你的防病毒软件阻止了ActiveSync进行同步。请确认你的反病毒软件是否允许你禁用script blocking
12. 你是否可以禁用反病毒软件中的script blocking?
* 是: 禁用脚本阻止。尝试同步smartphone.
* 否: 如果你的防病毒软件不允许你禁用script blocking, 你可以卸载一个DLL来禁用该功能。
13. 现在我们打算删除可能阻止同步的那个DLL,但仅在你无法禁用script blocking的情况下使用接下来的步骤
14. 在开始菜单中, 选择运行
15. 输入regedit点击确定
16. 在注册表编辑器中,打开HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0006F03A-0000-0000-C000-000000000046}\InprocServer32.
17. 当你点击InprocServer32, 右面的栏中将会显示一个列表. 第一条就是(Default).
18. 右击(Default)项,选择删除
19. 尝试同步你的smartphone.
但用了以上方法之后还是不行。。。
之后发现原来可以通过修复Outlook安装来解决这个问题,于是就抱着试试看的心理试了一把。。。奇迹出现了,安装程序运行完之后,一切都好了,哈哈。后来回过头来想想,可能问题出在这里——我的机器上既安装了Office 2007又安装了Office 2003,而且Office 2003是在Office 2007之后安装的,所以可能覆盖了一些相关的DLL,所以会导致出现问题。
希望以上经验对大家有用,当然具体问题具体分析,我个人还是比较推荐大家看 http://kb.palm.com/SRVS/CGI-BIN/WEBCGI.EXE?New,Kb=PalmSupportKB,ts=Palm_External2001,Case=obj(41810)