压缩包属性怎么这样?可以正常如何解压加密压缩包

9167人阅读
本文通过对数据压缩算法的简要介绍,然后以详细的示例演示了利用java.util.zip包实现数据的压缩与解压,并扩展到在网络传输方面如何应用java.util.zip包现数据压缩与解压
许多信息资料都或多或少的包含一些多余的数据。通常会导致在客户端与服务器之间,应用程序与计算机之间极大的数据传输量。最常见的解决数据存储和信 息传送的方法是安装额外的存储设备和扩展现有的通讯能力。这样做是可以的,但无疑会增加组织的运作成本。一种有效的解决数据存储与信息传输的方法是通过更 有效率的代码来存储数据。这篇文章简要的介绍了数据的压缩与解压缩,并展示了用java.util.zip包来实现数据的压缩与解压缩是多么的方便与高 效。
当然用诸如WinZip,gzip,和Java压缩(或jar)之类的工具也可以实现数据的压缩与解压缩,这些工具都是独立的应用程序。你也可以在 JAVA应用程序中调用这些工具,但这并不是最直接的方法,也不是有效的解决方法。尤其是你想更快速地实现数据的压缩与解压缩(例如在传输数据到远程机器 之前)。这篇文章包括以下内容:
给出一个关于数据压缩的简单的介绍 描述java.util.zip包 示例如何使用该包实现数据的压缩与解压缩 示例如何压缩串行化的对象并将其存储在磁碟上 示例如何通过数据压缩来增强&客户/服务&应用程序的性能
文件中数据冗余的最简单的类型是&字符的复制&。让我们先来看下面一个字符串:
JJJJJJAAAAVVVVAAAAAA 这个字符串可以用更简洁的方式来编码,那就是通过替换每一个重复的字符串为单个的实例字符加上记录重复次数的数字来表示,上面的字符串可以被编码为下面的形式:
6J4A4V6A 在这里,&6J&意味着6个字符J,&4A&意味着4个字符A,以此类推。这种字符串压缩方式称为&行程长度编码&方式,简称RLE。
再举一个例子,考虑一下矩形图像的存储。一个单色位图,可以被存储为下面这种形式,如图1所示。
另外一种方式是将图像存为一个图元文件:
Rectangle 11, 3, 20, 5
上面的表示方法是讲矩形的起始坐标是(11,3),宽度是20,高度是5。
上述的矩形图像可以使用RLE编码方式压缩,通过对相同位记数表示如下:
0,10 1,20 0,10
0,10 1,1 0,18 1,1 0,10
0,10 1,1 0,18 1,1 0,10
0,10 1,1 0,18 1,1 0,10
0,10 1,20 0,10
上面第一行是讲图像的第一行由40个0组成。第三行是讲图像的第三行是由10个0加上20个1再加上10个0组成,其它行以此类推。
大家注意,RLE方法需要将其表示的文件与编码文件分开。所以,这种方法不能应用于所有的文件。其它的压缩技术包括变长编码(也被称为哈夫曼编码),还有其它的方法。要想了解更详细的信息,请参考有关数据和图像压缩技术方面的图书,一定会有收获的。
数据压缩有很多益处。不管怎么说,最主要的好处就是减少存储方面的需求。同样的,对于数据通信来讲,压缩数据在媒体中的将导致信息传输数据的提升。 数据的压缩能够通过软件在现有的硬件设备上实现或者通过带有压缩技术的特殊的硬件设备来实现。图表2显示了基本的数据压缩结构图。
ZIP VS GZIP
如果你是在Windows系统下工作,你可能会对工具WinZip很熟悉,是用来创建压缩档案和解开压缩档案的。而在UNIX平台上,会有一些不同,命令tar用来创建一个档案文件(并不压缩),其它的程序(gzip或compress)用来创建一个压缩档案。
WinZip和PkZip之类的工具同时扮演着归档和压缩两个角色。他们将文件压缩并将其归档。另一方面,gzip并不将文件归档。所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩。
Java.util.zip包
Java提供了java.util.zip包用来兼容ZIP格式的数据压缩。它提供了一系列的类用来读取,创建,修改ZIP和GZIP格式的文件。 它还提供了工具类来计算任意输入流的数目,这可以用来验证输入数据的有效性。该包提供了一个接口,十四个类,和两个异常处理类,如表1所示。
被类Adler32和CRC32实现的接口
使用Alder32算法来计算Checksum数目
CheckedInputStream
一个输入流,保存着被读取数据的Checksum
CheckedOutputStream
一个输出流,保存着被读取数据的Checksum
使用CRC32算法来计算Checksum数目
使用ZLIB压缩类,支持通常的压缩方式
DeflaterOutputStream
一个输出过滤流,用来压缩Deflater格式数据
GZIPInputStream
一个输入过滤流,读取GZIP格式压缩数据
GZIPOutputStream
一个输出过滤流,读取GZIP格式压缩数据
使用ZLIB压缩类,支持通常的解压方式
InlfaterInputStream
一个输入过滤流,用来解压Inlfater格式的压缩数据
存储ZIP条目
从ZIP文件中读取ZIP条目
ZipInputStream
一个输入过滤流,用来读取ZIP格式文件中的文件
ZipOutputStream
一个输出过滤流,用来向ZIP格式文件口写入文件
DataFormatException
抛出一个数据格式错误
ZipException
抛出一个ZIP文件
注意:ZLIB压缩类最初是作为可移植的网络图像文件格式(PNG)标准的一部分开发的,是不受专利保护的。
java.util.zip包提供了数据压缩与解压缩所需要的类。ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包 提供了类ZipInputStream来读取ZIP文件。ZipInputStream流的创建与其它输入流的创建没什么两样。举个例子,下面的代码段创 建了一个输入流来读取ZIP格式的文件:
FileInputStream fis = new FileInputStream(&figs.zip&);
ZipInputStream zin = new ZipInputStream(new BufferedInputStream(fis));
ZIP输入流打开后,你可以使用getNextEntry方法来读取ZIP文件中的条目数,该方法返回一个ZipEntry对象。如果到达文件的尾部,getNextEntry返回null:
while((entry = zin.getNextEntry()) != null) {
// extract data
// open output streams
现在,你应该建立一个输出流,如下所示:
int BUFFER = 2048;
FileOutputStream fos = new FileOutputStream(entry.getName());
BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER);
注意:在这段代码中我们用BufferedOutputStream代替了ZIPOutputStream。 ZIPOutputStream和GZIPOutputStream使用内置的512字节缓冲。当缓冲区的大小大于512字节时,使用 BufferedOutputStream才是正确的(例子中设置为2048)。ZIPOutputStream不允许你设置缓冲区的大 小,GZIPOutputStream也是一样,但创建 GZIPOutputStream 对象时可以通过构造函数的参数指定内置的缓冲尺寸。
这段代码中,使用ZIP内含的条目名称创建一个文件输出流。可以使用entry.getName来得到它的返回句柄。接着读出被压缩的源数据,然后写入输出流:
while ((count = zin.read(data, 0, BUFFER)) != -1) {
//System.out.write(x);
dest.write(data, 0, count);
最后,不要忘记关闭输入和输出流:
dest.flush();
dest.close();
zin.close();
例程1的源程序UnZip.java显示如何解压缩并从ZIP档案中将文件释放出来。测试这个例子,编译这个类,并运行它,传给它一个ZIP格式的文件作为参数:
prompt& java UnZip somefile.zip
注意:somefile.zip应该是一个ZIP压缩档案,可以用任何一种ZIP压缩工具来创建,例如WinZip。
UnZip.java
import java.io.*;
import java.util.zip.*;
public class UnZip {
static final int BUFFER = 2048;
public static void main (String argv[]) {
BufferedOutputStream dest =
FileInputStream fis = new
FileInputStream(argv[0]);
ZipInputStream zis = new
ZipInputStream(new BufferedInputStream(fis));
while((entry = zis.getNextEntry()) != null) {
System.out.println(&Extracting: & +entry);
byte data[] = new byte[BUFFER];
// write the files to the disk
FileOutputStream fos = new
FileOutputStream(entry.getName());
dest = new
BufferedOutputStream(fos, BUFFER);
while ((count = zis.read(data, 0, BUFFER))
dest.write(data, 0, count);
dest.flush();
dest.close();
zis.close();
} catch(Exception e) {
e.printStackTrace();
有一点值得大家注意,类ZipInputStream读出ZIP文件序列(简单地说就是读出这个ZIP文件压缩了多少文件),而类ZipFile使用内嵌的随机文件访问机制读出其中的文件内容,所以不必顺序的读出ZIP压缩文件序列。
注意:ZIPInputStream和ZipFile之间另外一个基本的不同点在于高速缓冲的使用方面。当文件 使用ZipInputStream和FileInputStream流读出的时候,ZIP条目不使用高速缓冲。然而,如果使用ZipFile(文件名)来 打开文件,它将使用内嵌的高速缓冲,所以如果ZipFile(文件名)被重复调用的话,文件只被打开一次。缓冲值在第二次打开进使用。如果你工作在 UNIX系统下,这是什么作用都没有的,因为使用ZipFile打开的所有ZIP文件都在内存中存在映射,所以使用ZipFile的性能优于
ZipInputStream。然而,如果同一ZIP文件的内容在程序执行期间经常改变,或是重载的话,使用ZipInputStream就成为你的首选 了。
下面显示了使用类ZipFile来解压一个ZIP文件的过程:
通过指定一个被读取的ZIP文件,或者是文件名,或者是一个文件对象来创建一个ZipFile对象: ZipFile zipfile = new ZipFile(&figs.zip&);
使 用entries方法,返回一个枚举对象,循环获得文件的ZIP条目对象: while(e.hasMoreElements()) { entry = (ZipEntry) e.nextElement(); // read contents and save them }
ZIP 条目作为参数传递给getInputStream方法,可以读取ZIP文件中指定条目的内容,能过其返回的输入流(InputStram)对象可以方便的 读出ZIP条目的内容: is = new BufferedInputStream(zipfile.getInputStream(entry));
获 取ZIP条目的文件名,创建输出流,并保存: byte data[] = new byte[BUFFER]; FileOutputStream fos = new FileOutputStream(entry.getName()); dest = new BufferedOutputStream(fos, BUFFER); while ((count = is.read(data, 0, BUFFER)) != -1) { dest.write(data, 0, count); }
最后关闭所有的输入输出流 dest.flush(); dest.close(); is.close();
完整的程序代码如例程2所示。再次编译这个文件,并传递一个ZIP格式的文件做为参数:
prompt& java UnZip2 somefile.zip
类ZipOutputStream能够用来将数据压缩成一个ZIP文件。ZipOutputStream将数据写入ZIP格式的输出流。下面的步骤与创建一个ZIP文件相关。
1、第一步是创建一个ZipOutputStream对象,我们将要写入输出流的文件作为参数传给它。下面的代码演示了如何创建一个名为&myfigs.zip&的ZIP文件。
FileOutputStream dest = new
FileOutputStream(&myfigs.zip&);
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
2、一但目标输出流创建后,下一步就是打开数据源文件。在这个例子中,源数据文件是指那些当前目录下的文件。命令list用来得到当前目录下文件列表:
File f = new File(&.&);
String files[] = f.list();
for (int i=0; i & files. i++) {
System.out.println(&Adding: &+files[i]);
FileInputStream fi = new FileInputStream(files[i]);
// create zip entry
// add entries to ZIP file
注意:这个例程能够压缩当前目录下的所有文件。它不能处理子目录。作为一个练习,你可以修改例程3来处理子目录。
3、 为读出的数据创建一个ZIP条目列表:
ZipEntry entry = new ZipEntry(files[i]))
4、 在你将数据写入ZIP输出流之前,你必须使用putNextEntry方法将ZIP条目列表写入输出流:
out.putNextEntry(entry);
5、 将数据写入ZIP文件:
while((count = origin.read(data, 0, BUFFER)) != -1) {
out.write(data, 0, count);
6、 最后关闭所有的输入输出流:
origin.close();
out.close();
完整的程序代码如例程3所示。
import java.io.*;
import java.util.zip.*;
public class Zip {
static final int BUFFER = 2048;
public static void main (String argv[]) {
BufferedInputStream origin =
FileOutputStream dest = new
FileOutputStream(&c:\\zip\\myfigs.zip&);
ZipOutputStream out = new ZipOutputStream(new
BufferedOutputStream(dest));
//out.setMethod(ZipOutputStream.DEFLATED);
byte data[] = new byte[BUFFER];
// get a list of files from current directory
File f = new File(&.&);
String files[] = f.list();
for (int i=0; i & files. i++) {
System.out.println(&Adding: &+files[i]);
FileInputStream fi = new
FileInputStream(files[i]);
origin = new
BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(files[i]);
out.putNextEntry(entry);
while((count = origin.read(data, 0,
BUFFER)) != -1) {
out.write(data, 0, count);
origin.close();
out.close();
} catch(Exception e) {
e.printStackTrace();
注意: 条目列表可以以两种方式加入ZIP文件中,一种是压缩方式(DEFLATED),另一种是不压缩方式(STORED),系统默认的存储方式为压缩方式 (DEFLATED)。SetMethod方法可以用来设置它的存储方式。例如,设置存储方式为DEFLATED(压缩)应该这样做: out.setMethod(ZipOutputStream.DEFLATED) 设置存储方式为(不压缩)应该这样做: out.setMethod(ZipOutputStream.STORED)。
类ZipEntry描述了存储在ZIP文件中的压缩文件。类中包含有多种方法可以用来设置和获得ZIP条目的信息。类ZipEntry是被 ZipFile和ZipInputStream使用来读取ZIP文件,ZipOutputStream来写入ZIP文件的。ZipEntry中最有用的一 些方法显示在下面的表格2中,并且有相应的描述。
public String getComment()
返回条目的注释, 没有返回null
public long getCompressedSize()
返回条目压缩后的大小, 未知返回-1
public int getMethod()
返回条目的压缩方式,没有指定返回 -1
public String getName()
返回条目的名称
public long getSize()
返回未被压缩的条目的大小,未知返回-1
public long getTime()
返回条目的修改时间, 没有指定返回-1
public void setComment(String c)
设置条目的注释
public void setMethod(int method)
设置条目的压缩方式
public void setSize(long size)
设置没有压缩的条目的大小
public void setTime(long time)
设置条目的修改时间
java.util.zip包中另外一些比较重要的类是Adler32和CRC32,它们实现了java.util.zip.Checksum接 口,并估算了压缩数据的校验和(checksum)。众所周知,在运算速度方面,Adler32算法比CRC32算法要有一定的优势;但在数据可信度方 面,CRC32算法则要更胜一筹。正所谓,&鱼与熊掌,不可兼得。&,大家只好在不同的场合下,加以取舍了。GetValue方法可以用来获得当前的 checksum值,reset方法能够重新设置checksum为其缺省的值。
求和校验一般用来校验文件和信息是否正确的传送。举个例子,假设你想创建一个ZIP文件,然后将其传送到远程计算机上。当到达远程计算机后,你就可 以使用checksum检验在传输过程中文件是否发生错误。为了演示如何创建checksums,我们修改了例程1和例程3,在例程4和例程5中使用了两 个新类,一个是CheckedInputStream,另一个是CheckedOutputStream。(大家注意:这两段代码在压缩与解压缩过程中, 使用了同一种算法,求数据的checksum值。)
import java.io.*;
import java.util.zip.*;
public class Zip {
static final int BUFFER = 2048;
public static void main (String argv[]) {
BufferedInputStream origin =
FileOutputStream dest = new
FileOutputStream(&c:\\zip\\myfigs.zip&);
CheckedOutputStream checksum = new
CheckedOutputStream(dest, new Adler32());
ZipOutputStream out = new
ZipOutputStream(new
BufferedOutputStream(checksum));
//out.setMethod(ZipOutputStream.DEFLATED);
byte data[] = new byte[BUFFER];
// get a list of files from current directory
File f = new File(&.&);
String files[] = f.list();
for (int i=0; i & files. i++) {
System.out.println(&Adding: &+files[i]);
FileInputStream fi = new
FileInputStream(files[i]);
origin = new
BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(files[i]);
out.putNextEntry(entry);
while((count = origin.read(data, 0,
BUFFER)) != -1) {
out.write(data, 0, count);
origin.close();
out.close();
System.out.println(&checksum:
&+checksum.getChecksum().getValue());
} catch(Exception e) {
e.printStackTrace();
UnZip.java
import java.io.*;
import java.util.zip.*;
public class UnZip {
public static void main (String argv[]) {
final int BUFFER = 2048;
BufferedOutputStream dest =
FileInputStream fis = new
FileInputStream(argv[0]);
CheckedInputStream checksum = new
CheckedInputStream(fis, new Adler32());
ZipInputStream zis = new
ZipInputStream(new
BufferedInputStream(checksum));
while((entry = zis.getNextEntry()) != null) {
System.out.println(&Extracting: & +entry);
byte data[] = new byte[BUFFER];
// write the files to the disk
FileOutputStream fos = new
FileOutputStream(entry.getName());
dest = new BufferedOutputStream(fos,
while ((count = zis.read(data, 0,
BUFFER)) != -1) {
dest.write(data, 0, count);
dest.flush();
dest.close();
zis.close();
System.out.println(&Checksum:
&+checksum.getChecksum().getValue());
} catch(Exception e) {
e.printStackTrace();
测试例程4和5,编译类文件并运行类Zip来创建一个压缩档案(程序会计算出checksum值并显示在屏幕上),然后运行UnZip类来解压缩这 个档案(屏幕上同样会打印出一个checksum值)。两个值必须完全相同,否则说明出错了。Checksums在数据校验方面非常有用。例如,你可以创 建一个ZIP文件,然后连同checksum值一同传递给你的朋友。你的朋友解压缩文件后,将生成的checksum值与你提供的作一比较,如果相同则说 明在传递过程中没有发生错误。
我们已经看到如何将文件中的数据压缩并将其归档。但如果你想压缩的数据不在文件中时,应该怎么办呢?假设有这样一个例子,你通过套接字 (socket)来传递一个大对象。为了提高应用程序的性能,你可能在通过网络开始传递前将数据压缩,然后在目的地将其解压缩。另外一个例子,我们假设你 想将一个对象用压缩格式存储在磁碟上,ZIP格式是基于记录方式的,不适合这项工作。GZIP更适合用来实现这种对单一数据流的操作。现在,我们来示例一 下,如果在写入磁碟前将数据压缩,并在读出时将数据解压缩。示例程序6是一个在单一JVM(java虚拟机)实现了Serializable接口的简单
类,我们想要串行化该类的实例。
Employee.java
import java.io.*;
public class Employee implements Serializable {
public Employee(String name, int age, int salary) {
this.name =
this.age =
this.salary =
public void print() {
System.out.println(&Record for: &+name);
System.out.println(&Name: &+name);
System.out.println(&Age: &+age);
System.out.println(&Salary: &+salary);
现在,写另外一个类来创建两个从Employee类实例化而来的对象。示例程序7从Employee类创建了两个对象(sarah和sam)。然后将它们的状态以压缩的格式存储在一个文件中。
SaveEmployee.java
import java.io.*;
import java.util.zip.*;
public class SaveEmployee {
public static void main(String argv[]) throws
Exception {
// create some objects
Employee sarah = new Employee(&S. Jordan&, 28,
Employee sam = new Employee(&S. McDonald&, 29,
// serialize the objects sarah and sam
FileOutputStream fos = new
FileOutputStream(&db&);
GZIPOutputStream gz = new GZIPOutputStream(fos);
ObjectOutputStream oos = new
ObjectOutputStream(gz);
oos.writeObject(sarah);
oos.writeObject(sam);
oos.flush();
oos.close();
fos.close();
现在,示例程序8中的ReadEmpolyee类是用来重新构建两个对象的状态。一但构建成功,就调用print方法将其打印出来。
ReadEmployee.java
import java.io.*;
import java.util.zip.*;
public class ReadEmployee {
public static void main(String argv[]) throws
Exception{
//deserialize objects sarah and sam
FileInputStream fis = new FileInputStream(&db&);
GZIPInputStream gs = new GZIPInputStream(fis);
ObjectInputStream ois = new ObjectInputStream(gs);
Employee sarah = (Employee) ois.readObject();
Employee sam = (Employee) ois.readObject();
//print the records after reconstruction of state
sarah.print();
sam.print();
ois.close();
fis.close();
同样的思想可以用于在网络间通过(socket)传输的大对象。下面的代码段示例了如何在客户/服务器之间实现大对象的压缩:
// write to client
GZIPOutputStream gzipout = new
GZIPOutputStream(socket.getOutputStream());
ObjectOutputStream oos = new
ObjectOutputStream(gzipout);
oos.writeObject(obj);
gzipos.finish();
下面的代码段显示了客户端从服务器端接收到数据后,如何将其解压:
// read from server
Socket socket = new Socket(remoteServerIP, PORT);
GZIPInputStream gzipin = new
GZIPInputStream(socket.getInputStream());
ObjectInputStream ois = new ObjectInputStream(gzipin);
Object o = ois.readObject();
Java档案文件(JAR)格式是基于标准的ZIP文件格式,并附有可选择的文件清单列表。如果你想要在你我的应用程序中创建JAR文件或从JAR 文件中解压缩文件,可以使用java.util.jar包,它提供了读写JAR文件的类。使用java.util.jar包提供的类与本文所讲述的 java.util.zip包十分相似。所以你应该能够重新编写本文的源代码,如果你想使用java.util.jar包的话。
本文讨论了你可以在应用程序中使用的数据压缩与解压的应用程序接口,本文的示例程序演示了如何使用java.util.zip包来压缩数据与解压缩数据。现在你可以利用这个工具在你的应用程序中实现数据的压缩与解压了。
本文也说明了如何在络传输中实现数据的压缩与解压缩,以减少网络阻塞和增强你的客户/服务器模式应用程序的性能。在网络传输中实现数据的压缩,只有当传输的数据量达到成百上千字节时,你才会感觉到程序性能的提升,如果仅仅是传递一个字符串对象,对应用程序是没什么影响的。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:103185次
积分:1475
积分:1475
排名:第18629名
原创:40篇
转载:41篇
评论:11条
(1)(3)(8)(6)(8)(3)(3)(2)(1)(1)(5)(2)(14)(3)(5)(9)(9)1. 新增扫二维码功能,可直接扫 VeryCD 网站影片页面的二维码,便能在应用上打开;
2. 新增支持 B 站视频(哔哩哔哩),满屏的弹幕更欢乐;
1. 新增支持 B 站视频(哔哩哔哩),满屏的弹幕更欢乐;
2. 在影片封面上展示在线视频的清晰度;
您的位置:
地区(语言):&大陆(简体中文) 发行日期:&2009年
收藏人数: 564
制作发行:&语言:&
收藏资源后,一旦有新更新(字幕、文件)我们
将会用站内消息和电子邮件通知你。
收藏资源后,一旦有新更新(字幕、文件)我们
将会用站内消息和电子邮件通知你。
该内容尚未提供权利证明,无法提供下载。
中文名:&用友ERP企业管理软件U872(重新放源,欢迎分流)英文名:&UFIDA ERP U872别名:&U872资源格式:&压缩包版本:&院校多国语言版制作发行:&地区:&语言:&简介:&
资源已经补充完整一、产品概述
目前中国在世界经济环境中所起的作用越来越大,中小企业面对的客户也逐渐扩展到世界各地,企业或间接、或直接的参与到全球市场中去。中小企业所要面对的是直接面向客户的作业模式,更短的产品生命周期,竞争的进一步加剧,应用ERP可以快速复制标杆的运营模式,贯彻企业制度,规范管理理念,并能够依靠ERP快速的进行管理创新、锤炼持续的竞争能力。
用友ERP-U8是一套企业级的解决方案,满足不同的竞争环境下,不同的制造、商务模式下,以及不同的运营模式下的企业经营,实现从企业日常运营、人力资源管理到办公事务处理等全方位的产品解决方案。用友ERP-U8是以集成的信息管理为基础,以规范企业运营,改善经营成果为目标,帮助企业“优化资源,提升管理”,实现面向市场的赢利性增长。
用友ERP-U8是一个企业综合运营平台,用以解决不同满足各级管理者对信息化的不同要求:为高层经营管理者提供大量收益与风险的决策信息,辅助企业制定长远发展战略;为中层管理人员提供企业各个运作层面的运作状况,帮助做到各种事件的监控、发现、分析、解决、反馈等处理流程,帮助做到投入产出最优配比;为基层管理人员提供便利的作业环境,易用的操作方式实现工作岗位、工作职能的有效履行。
本次发版产品“用友ERP-U8 V8.72”系统为2008年3月发版的产品“用友ERP-U8 V8.71”的升级版本,包括以下产品:企业门户、财务会计、管理会计、客户关系管理、供应链管理、生产制造、分销管理、零售管理、决策支持、人力资源管理、办公自动化、集团应用、企业应用集成。本版重点是提高系统运行效率、改进产品易用性,另外推出了面向中高层管理人员以及专业分析人员,进行全面的企业财务、业务的综合查询、实时监控和分析决策的商业智能平台。
用友U8移动ERP是一个基于WAP技术的移动ERP解决方案,并且支持未来3G协议和技术。用友U8移动ERP系统U8-ERP软件上拓展的移动增值服务。以互联网和移动通讯作为载体,利用手机,通过wap方式,进行企业信息的查询、审批等操作,使整个ERP应用范围不再局限于计算机网络,通过支持GPRS的手机,使企业人员随时随地可掌控企业的一切业务、财务变动情况,实现随时管理功能。二、产品范围及新业务特性2.1产品范围 图:U872产品范围
如上图中所示,本次发版产品“用友ERP-U8 V8.72”系统包括以下产品:财务管理、集团应用、客户关系管理、供应链管理、生产制造、分销管理、零售管理、决策支持、人力资源。本版充分考虑国外企业在华投资和国内企业向海外发展的国际化运营模式的需求,提供多语言(简、繁、英)支持。详细的发版产品见列表:应用功能 明细模块 财务管理 总账、出纳管理、应收管理、应付管理、固定资产、UFO报表、网上银行、票据通、网上报销、现金流量表、预算管理、成本管理、项目管理、资金管理、报账中心 集团财务 结算中心、网上结算、集团财务、合并报表、集团预算、行业报表 客户关系管理 客户关系管理(客户管理、商机管理、活动管理、费用管理、市场管理、统计分析、调查管理)、服务管理 供应链管理 合同管理、售前分析、销售管理、采购管理、委外管理、库存管理、存货核算、质量管理、GSP质量管理、进口管理、出口管理、序列号、VMI 生产制造 物料清单、主生产计划、需求规划、产能管理、生产订单、车间管理、工序委外、工程变更、设备管理 零售管理 零售管理端:价格管理、折扣管理、VIP管理、统计查询、门店业务管理、基础设置、数据准备、数据交换、系统管理门店客户端:零售管理、店存管理、日结管理、基础设置、系统管理、联营管理 决策支持 专家财务评估、商业智能 人力资源 HR基础设置、人事管理、薪资管理、计件工资(集体计件)、人事合同、考勤管理、保险福利、招聘管理、培训管理、绩效管理、员工自助、经理自助。 系统管理与应用集成 系统管理、应用平台、企业门户、EAI平台、金税接口、零售接口、远程接入 移动ERP 重要消息及待办审批事项、业务管理、领导信息查询及经营分析 注:本版取消WEB财务、WEB业务、公司对账、OA四个产品。多语言的支持:支持多语言的产品见下表:产品 子产品模块 多语言支持 说明 财务 总账
应收款管理
应付款管理
现金流量表
供应链 售前分析
库存管理 是
存货核算 是
进口管理 否
出口管理 是
质量管理 是
生产制造 物料清单 是
主生产计划 是
产能管理 是
需求规划 是
生产订单 是
车间管理 是
工序委外 否
工程变更 是
设备管理 是
决策 专家财务评估(企业、集团版) 是
专家财务评估(基础版) 是
商业智能 否
集团 集团总账 是
合并报表 否
结算中心 否
网上结算 否
HR 基础设置 是
人事管理 是
薪资管理 是
计件工资 是
考勤休假管理 否
招聘管理 是
经理自助 否
员工自助 否
保险福利管理 是
培训管理 是
人事合同 是
绩效管理 否
宿舍管理 否
CRM 客户关系管理  是
服务管理 否
零售   否
2.2新业务特性平台及工具门户完善消息中心:增加翻页功能、自动清除消息功能、新任务提醒等功能。使之更具有人性化的操作。增加批量任务处理,按单据类型显示合并的待办任务。给用户提供便利。基础设置增加存货维护申请处理,适用于多角色人员从不同角度维护同一存货档案和需要审批确认才应生效的应用。增加存货自由项对照表,可以显示和设置存货档案与自由项档案的对照记录,同? 时支持批量操作和默认值设置。增加基础档案“批改”功能权限。客户存货对照表新增“复制”功能以简化增加操作。单据表体支持SHIFT、鼠标拖拽选择多行,方便用户进行删除等操作。单据体多个单元格支持合计功能。(鼠标置于所选区域内一段时间,自动出现Tip显示该区域数值的合计)。单据支持行布局和打印存货图片。功能权限的浏览调整为树形方式,提高易用性,同时支持功能权限导入和导出功能。3.
UAP表单增加UAP生单功能,提供更全面的生单功能。U8单据与UAP自定义表单之间的任意生单,包括U8单据UAP单据、U8单据U8单据、UAP单据U8单据、UAP单据UAP单据。对UAP表单UI规则进行完善,以达到简化二次开发编程的目的。提高易用性,在运行时提供格式设置功能。为了使应用更加完善,增加UAP定义的表单支持挂接审批流的应用。加入多用户同时对UAP表单进行操作时,控制并发互斥的操作。丰富实体功能,允许添加附件类型的实体属性。工作流
消息中心待办任务合并显示,消息中心增加“批量任务”节点,按单据类型显示合并的待办任务。 ??支持按照条件为“本人审批”来过滤出本操作员所有待审单据。 ??进入工作流的单据在单据列表中可以进行批审、批弃,所有审批意见统一输入。 ??流程设计时可以对任意审批节点进行超时设置,指定超时时限,超时后自动转给他人审批、超时后自动提醒;??可以在“工作流设计器”与“工作流控制台”之间自由切换,方便用户操作。 ??继续增强工作流对各种复杂应用的支持能力,不同意操作功能细分为退回重新处理和不同意但继续向下流转,也可以设置只能本人逐级弃审。增加工作流监控报表,管理人员可以实时查看掌握各个流程单据的状态,以便加强对审批进度的监管工作。报表 ??支持图表保存多个方案,每一级图表可以保存为不同的方案,并可自由切换。 ??支持运行时右键功能,可以在画布上直接编辑报表格式,新增区域和组件。 增加快捷属性窗口,增加组件后自动弹出快捷属性窗口,更利于用户操作。 ? 支持右键新增区域和组件。包括新增组件、新增区域、查找组件和撤销/恢复、剪切/复制/粘贴/删除等基本编辑动作。 ? 支持拖拽新增区域和组件。 ? 提供图形化的分组设置界面,提高易操作性。 ? 增加五个汇总公式,分组合计、页合计、分组累计、页累计,分组页累计。 ? 报表支持在设计器中导入导出。 ? 其他易用性问题,支持设计时查找组件,表格快速设计等功能。 7.
系统管理 ??支持多家CA认证,CA认证用于保证各方信息传递的安全性、完整性、可靠性。 ??增加主动清退站点的功能,释放该客户端所占的所有产品许可。 ??系统日志支持按照日期进行清除处理。 ??增加权限支持导入导出功能。 8.
EAI(企业集成应用) ?
新增EAI接口配置工具,配置零售接口所需要的EAI默认登录,外部注册码指定等信息。 9. 快速实施导入工具 ?
新增加多个导入模板:需求分类档案、批次档案、海关代码档案;期初采购入库单、期初委外入库单、期初受托代销入库单、期初发货单。 ?
支持按照存货+自由项+批号清理批次档案。 ?
支持批量清理操作员。 ?
提供存货档案PE供需政策批量转为LP功能。安装前注意事项 1、操作系统:
安装操作系统的关键补丁:win2000--SP4+KB835732、winxp--SP2、win2003--SP2;Vista--SP1;
使用windows update进行其他所有微软补丁的更新(推荐);
win2000的注册表空闲空间请保持在50M以上;
英文和繁体操作系统,必须安装简体中文语言包(通过windows安装盘进行安装)后才能正常使用U8产品;
U872全面支持64位环境,推荐安装和使用服务器端产品(包括应用服务器和数据库服务器)。安装之前,需要先手工安装U872所需要的基础环境补丁和缺省组件;
如果在Vista操作系统上安装运行U872产品,建议至少配置2G以上内存; 2、数据库:
如果安装数据库服务器,请先安装好数据库,U872支持以下SQLServer数据库版本:SQL2000(包括MSDE)[SP4及以上版本补丁]、SQL2005(包括EXPRESS)[SP2及以上版本补丁]和SQL2008[及以上版本];为支持正版软件使用,更大程度的保障数据安全,同时防止相关使用盗版法律诉讼事件的发生,请联系用友分公司相关人员(销售部门、技术支持部门、实施部门)或代理商购买正版SQL软件;SQLServer各个版本的关键补丁可以从微软网站或U8安装光盘的disk2、disk3上获得,具体位置请查看安装盘内容;
SQLServer的安装方法请阅读SQLServer的安装帮助,以SQL2000为例,请在SQLServer的安装界面点击“浏览安装/升级帮助”查阅,简体中文数据库默认安装即可;
在繁体和英文操作系统上安装相应语言的数据库时,请选择“自定义安装”,设置 “服务器排序规则”设置为简体中文(PRC),安装成功后显示为Chinese_PRC_CI_AS;(注:一旦安装完毕,此设置不可修改,只能在安装数据库时进行选择)
在繁体和英文操作系统上安装数据库后,必须先将操作系统的默认语言修改为简体中文(PRC),否则将导致U872数据库服务器无法使用;
支持数据库的多实例使用,但前提条件为必须有默认实例(包括对应的关键补丁)存在,否则将导致安装U872数据库服务器失败; 3、浏览器:
支持微软IE浏览器IE6.0 + SP1或以上版本(如IE7)使用U872的WEB产品;4、产品相关:
如果选择安装U872服务端(如应用服务器、Web服务器、数据服务器和文件服务器等),推荐使用Server版的操作系统,且磁盘分区的文件系统格式应为NTFS;
如果选择安装应用服务器、Web服务器或文件服务器,请先安装IIS,否则将导致Windows .NET Framework 2.0不能在IIS上成功注册文件映射关系和系统组件, 需要手工完成IIS文件映射配置和aspnet_isapi.dll的注册;IIS组件可以通过操作系统安装盘获取;如果是Vista或Windows2008,请务必手工安装IIS,以Vista为例详细操作方式请查看Vista上安装IIS的方法;
如果选择安装数据库服务器,请按照实际业务数据量确保存储数据文件的逻辑磁盘至少有10G以上的空闲空间,因U8产生的所有数据和临时数据均存储在这台服务器的硬盘上;
分布式安装(即不同的组件安装到不同的服务器上)时,各服务器应该在同一个域或者工作组中;
如果选择使用客户关系管理(CRM),安装客户关系管理客户端的机器必须先安装MS OFFICE2000或以上版本(如OFFICE2003等),因为它需要使用到OFFICE的部分组件功能;
如果选择使用生产制造, 请确保IIS Web服务中的Http连接超时参数为28800秒。在小于此值的情况下执行生产制造的MPS/MRP处理时,因服务端组件运行的时间比较长,IIS会认为客户端异常断开连接,自动清除此客户端的会话信息,导致客户端系统异常退出;
如果已安装过U872之前的任何历史版本U8产品,请务必先通过控制面板或历史版本安装程序正常卸载(安装过补丁则先卸载补丁再卸载产品),重启机器后手工删除system32下的UFCOMSQL文件夹和整个U8安装目录(默认为U8SOFT),再进行U872的安装;(注:admin目录下的文件需要停止数据库后才可以正常删除,删除后需要再进入SQLserver“企业管理器”删除已置疑的数据库,否则会导致初始化数据库和建立账套异常失败);
如果已安装过任何版本的U8产品(包括U872),但无法卸载或卸载失败,请先使用U872MSI清除工具(路径为DISK1\U872MSI清除工具)查找并删除相应U8产品及补丁项,并参考G条删除相应安装内容后,再进行U872的安装;
如果已经安装了870SP1+SP2+SP3,需要按照顺序卸载SP3、SP2、SP1和U870后才能安装U872(如果是直接使用U870SP1安装盘安装的产品,需要直接通过该安装盘卸载,否则SP1将无法卸载,脚本会继续在U872建账时重复执行,导致U872新建账套使用异常)。 注:以上操作请在安装U872产品之前完成!3.1.2安装时注意事项
必须使用系统管理员或具有同等权限的操作员身份(用户ID属于操作系统Administrators组)登录操作系统进行U872的安装;
繁体和英文操作系统(没有修改过系统默认语言),如果通过网络或共享目录安装产品,会因为无法识别中文安装路径而发生无响应的情况,可以将安装盘拷贝到本地修改安装盘所在目录名称为非中文后进行安装,或者通过设置“映射网络驱动器”后安装;
安装手册为PDF格式,推荐使用Adobe Acrobat 7.0以上版本进行查阅;
确保系统盘有1G以上的空闲空间;
U872仅支持安装在由字母、数字、下划线和空格组成的目录下;
U872安装盘的修改安装功能不支持从纯客户端修改安装到服务器(或增加服务器端组件),只能先卸载产品再重新安装;
win2003操作系统,如果安装了远程终端并且配置成“宽松安全模式”(英文为Application mode),在安装U872时会弹出如下所示的windows管理员确认窗口,请确保在安装872成功并确认重启机器之后再关闭,否则将导致安装(包括组件安装)失败!(默认情况下Win2003不会出现这种情况)
U872环境检测分为“基础环境”和“缺省组件”两部分,“基础环境”不符合要求,需要退出当前安装环境后手工安装所需的软件和补丁;“缺省组件”没有安装的,可以通过“安装缺省组件”功能自动安装,也可以通过系统提供的超链接打开对应的安装目录进行手工安装(注:安装“缺省组件“时可能会要求重新启动机器,请按照提示执行,否则将导致不可预期的错误和异常);
U872环境检测过程中,如果安装缺省组件失败,请退出U872安装程序后,手工安装该组件(路径为\U872SETUP\3rdProgram);(注:如手工安装仍失败,请按照“安装前注意事项”--“操作系统”中的B项进行更新)
安装过程中不要同时进行windows update和其他软件的安装,避免发生冲突导致安装终止或失败;
禁止多用户同时登录和使用正在安装U872的机器(比如通过远程终端连接),否则将引起安装进程混乱而导致安装提前终止和异常;
通过网络共享安装U872,如果中途网络中断,安装程序将回滚,请耐心等待回滚结束后重新安装产品,或者手工结束安装进程后重新安装产品(环境清理功能有可能提示重新启动机器);
有的机器在安装过程中可能出现安装文件损坏、无法继续安装的情况,提示“安装所需的CAB文件‘Product.cab’已损坏,不能使用。这可能表示网络错误、读光盘错误或此软件包错误。”这可能是由于安装文件损坏造成,请按以下方式重新安装:根据安装来源的不同,检查更换安装文件:如果是从本机光盘安装,请检查光盘是否损坏,如损坏请更换安装光盘或使用别的安装来源;如果是从本机硬盘文件安装,请检查硬盘文件是否损坏,如损坏请重新拷贝安装盘或使用别的安装来源;如果是通过网络共享从其他机器上的安装盘安装,请检查网络连接是否正常,如网络异常请配置好网络或使用别的安装来源;使用U872MSI清除工具(路径为DISK1\U872MSI清除工具)查找并删除相应U8产品及补丁项;使用a)中的新安装来源,重新安装U872;如果仍然报相同错误,请检查机器的内存,建议更换内存,然后重复步骤和c)有的机器在安装过程中会提示无法注册模块或组件,此时请点击“忽略”,继续安装;安装成功后请按照提示重新启动机器,没有重新启动机器而直接使用产品将导致不可预期的错误和异常。3.1.3安装后注意事项 1、安装成功后系统可能会提示补丁更新,选择执行与否并不影响U872的正常使用;2、如果应用服务器和数据库服务器装在同一台服务器上,当应用服务器指向数据源时,请使用数据库服务器的机器名或IP地址,而不要使用“.”(点)或者“localhost”;3、安装后不要随意对注册表进行修改和删除操作,也不要删除安装目录下的Installer文件夹中ConfigSet.log、DependenceSet.log和MsiSet.log三个文件,以免后期无法通过修改及修复来进行产品的维护;4、产品分离部署(即服务器和客户端不在同一台机器上)时,如果客户端无法正常登录和访问服务器,请先检查网络是否连通,服务器端防火墙是否开启。如果开启,请按照“Windows防火墙设置方法”和“Windows防火墙设置内容”进行配置;也可以使用“诊断工具”进行检查,并按照提示信息进行配置(组件注册功能需时较长,在确认正常安装产品的情况下建议跳过);5、在启用windows防火墙的情况下,如果需要使用“UAP”、“生产制造”、“进/出口管理”或“CRM”产品,请在服务器端(包括应用服务器和数据库服务器)防火墙例外程序中增加 msdtc程序,位置:%windir%\system32\msdtc.exe ,否则将出现错误“与基础事务管理器通信失败!”;代码[color=#FF0000] [/color]请统一解压后再安装,安装之前,请确保系统准备完毕,包括但不限于IIS5.0以上,SQL server2000+sp4以上服务器代码[color=#FF0000] [/color]温馨提示:此版本为院校培训专版,会计周期不能超过三个月,个人练习用完全足够,由于ERP系统会涉及公司机密业务,请不要使用任何下载的版本作为商用,以免带来不要损失.由于872版本比较大,模块比较多,最佳的安装环境就是server 03的系统,公司内部使用一般为服务器+客户端模式.安装或使用中有任何问题请留言,如果感兴趣的同志们较多,后面会陆续放上教程. F:/1 代码[color=#FF0000] [/color]免责声明:此软件只能作为个人学习交流使用,请勿作为任何商用代码[color=#FF0000] [/color]供源时间:24H,持续一周以上.代码[color=#FF0000] [/color]测试环境:XP SP3,avast 4.8 2009.12病毒库,通过测试-----------------------------------------------补充分割线---------------------------------------------常见问题解答登录时提示“读取数据源错误,请检查iis配置是否正确”的解决方案1、首先进入管理工具中的“管理器”中查看“默认web服务器”是否正常运行,ip分配上是否是“默认未分配”或者是“本服务器的ip地址”,端口是否是默认的80。也就是说要保证下面的三项都正常 :1)必须运行正常;2)ip必须正确;3)80端口不能变。
如果运行状态是停止的话,可以手工进行启动,若手工启动不了,可以到管理工具下的“服务”组件中查看“iis admin”是否是禁用,如何禁用的话就进行手工启用。 2、 关闭winxp或win2003防火墙,如果有其他商业防火墙软件的话也一并关闭。3、查看sql server的认证方式是windows认证还是混合认证,如果是windows认证的话,请改成混合认证。4、查看:工具—internet选项中—连接—局域网(lan)设置中是否是用代理服务器上网,如果是,请勾选本地地址不使用代理服务器。问题:安装861后,注册系统管理,提示“读取数据源出现未知错误:请检查IIS配置是否正确”处理方法:运行CMD,在C:\WINNT\microsoft.net\Framework\v1.1.4322目录下,执行 aspnet_regiis -r,等执行完毕,就OK了站点无法连接服务解决方法总结站点无法连接服务器的解决方法 :(在其它站点正常应用的前提下)1、远程配置(重新输入服务器机器名或IP地址)2、服务机的内置防火墙关闭。3、服务器最好不能是XP,也不能是win2000pr版4、本地机器的防火墙(尤其是瑞星)和内置防火墙5、hosts文件的配置,需要服务器的机器名及ip地址,用tab键隔开6、ping服务器的机器名及ip地址确认网络联接正常。7、配一下odbc,在控制面版的管理工具下。8、用access联接一下服务器sql数据库是否能联接。9、将系统盘下\WINDOWS\system32\client.dll文件剪切到\WINDOWS\system里。10、将系统盘下\Program Files\Common Files\System\ado\msadox.dll替换一下11、检查站点软件版本与服务器版本是否不同。12、机器名的合法性检查。13、安装msde关键更新,或数据库的补丁14、设置wins服务器15、安装mdac2.8以上。16、本地连结—属性—验证—连接到此服务器,将服务器名加上。17、映射网络驱动器18、将guest用户启用并密码为空19、增加服务器WIN2000SERVER或sqlserver的最大授权数20、放开14323、磁盘空间太小 U8一些常见错误的处理方法.1.安装WINXP的最新补丁或者windows2003的sp1的computers安装U861系统,安装完成后,登陆‘企业应用平台’时都提示‘提示AUTOMATION自动化错误’异常错误.  解决方法:手工注册一下ado目录下的msadox.dll,原因msadox.dll与system32下的msdart.dll不兼容3,端口,前两个为sql所用,后者为u8服务所用21、正确配置IP,网关,和服务器保持在一个网段里,问题解决!22、在服务器上加入客户端的计算机名的名称授给超级用户的权限   2.门户登陆,在ufsplash中出现异常错误,提示无效属性值,同时门户提示automation错误  原因:用户的默认语言不在en-us,zh-cn,zh-tw中,导致系统出错  3.基础连接已关闭  在internet选项中去除代理服务器的设置  4.无法加载client.dll  错误原因:很可能是对client.dll没有访问权限,系统盘是ntfs,在重启IIS即可  5.基础连接已关闭,无法连接远程服务器  目前是因为ufautoloadservice中切换了应用服务器的名称导致  6.生产制造提示加载dll失败  因为ufautoloadservice依赖www服务,如果www独立重启,则会提示出错,如果启用ufautoloadservice后会自动重启www,此时再重启www,即没事了  7.安装完后,所有的activeX控件没有注册上  修改系统目录下Microsoft.Net中的所有目录及文件的EveryOne权限可用  检查用户的产品安装目录(U8Soft)有没有EveryOne的权限,没有请加上  然后运行附件里的U8Setup.bat,注意该批处理里的系统路径和U8安装路径要和客户的匹配  8.安装完framework2.0,在使用861出现padding is invalid的错误.  在internet信息服务中,找到默认web站点  右键点击属性,在asp.net中查看当前asp.net的版本,保证其为1.1  在应用服务器配置工具中使用异常任务清除,将所有的数据源清除,然后重新配置数据源,即可  9.修改端口  进入“internet信息服务“,修改“默认web站点“的端口,举例:8080  使用u8产品的时候,登录界面在应用服务器输入框上输入机器名:端口,假定机器名为ufida,则输入值为ufida:8080。  10. 报405错误  运行 C:\Documents and Settings\dsm&C:\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -r  用户可能根本未装iis  11. 2003底下404错误3376  运行aspnet_regiis.exe -r,在IIS管理器中,web服务扩展-〉asp net 1.1服务设为允许  如果是2000Server,则可能是连错服务器,即当前的机器不能充当U8的应用服务器,虚拟目录没有创建  12.2003下报读取注册表被拒绝  将iis的虚拟目录的匿名用户改为ADMINISTRATOR  13.清除Assembly download  &gacutil -cdl  14.activex创建不成功  命令在:系统目录\Microsoft.NET\Framework\v1.1.4322执行  regasm /codebase /tlb:UFSoft.U8.Framework.LoginContext.tlb UFSoft.U8.Framework.LoginContext.dll  regasm /codebase /tlb:UFSoft.U8.Framework.Login.UI.tlb UFSoft.U8.Framework.Login.UI.dll  15.Cryptographic service provider(CSP) could not be found for this algorithm.  操作系统2000的补丁必须要打到至少service pack 3  16.Member name 'UFSoft.U8.Framework.LoginContext.UserData SecondConnString' not found.  在添加\删除程序中卸载GACSetup,安装目录U8SOFT\Framework下托拽UFSoft.U8.Framework.LoginContext.dll到系统目录\assembly文件夹下,重启IIS即可  17.dotnet2005安装完后iis虚拟目录的属性无法看到.  修改注册键asp.net,如附件asp.net.reg  18.windows professional 并发连接数限制为10个  在IIS中将复选框“启用保持HTTP激活“去除,可以支撑的时间长一些  19.报403 错误  可能连接数超出允许的并发连接数;  解决:在IIS中将复选框“启用保持HTTP激活“去除,可以支撑的时间长一些  或者默认web站点的属性中“启用默认文档”中的默认文档都被删除;解决:添加default.htm或者tcp的默认端口不是80解决:修改tcp的默认端口是80  20.出现一些奇怪的dll的依赖项找不到  解决:需要打IE6 sp1  21.数据库问题  配置了数据源,但是数据源在下拉列表中不存在  a.系统库不存在。所以下拉列表没有  b.系统库存在,但是sqlserver 服务端的端口改为1432,应用服务器所在机器的客户端端口也需要改为1432(如果优先使用的是TCP/IP),然后重新启用IIS  22.更改机器名  先卸载IIS,再删除Iusr_XXX,Iwam_XXX,aspnet三个用户,之后重新安装IIS,在重装产品;如果还不行,将软件装到系统盘上。  23.如何支持64位机器,提示数据源连接失败,remote信道异常。  在Windows X64 Edition下,IIS可以运行在64位模式下,也可以运行在WOW64模式下。因为你们的系统还是32位的,才用.NET framework 1.1,因此需要配置IIS使其运行在WOW64模式下。  1.Open a command prompt and navigate to the %systemdrive%\Inetpub\AdminScripts directory.  2.Type the following command:  cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 “true”  3.Press ENTER.  4.Restart IIS  24.win2003安装了sp1后,登录出现错误:“登录失败:Automation 错误“  因为2003捆绑了msadox.dll,而sp1中带的msadox.dll与用友软件中使用的相同组件不兼容了,  所以目前的解决方法是手工替换此组件。使用安装盘自带的mdac2.8  25.Padding is invalid and cannot be removed.  先清除临时目录下的缓存,常用全文搜索。然后运行  运行 C:\Documents and Settings\dsm&C:\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -r即可  26.remoting 异常,request service not find  建议重新安装U8服务端  27.远程服务器返回错误: (401) 未经授权。  iis的身份验证将windows集成勾上或者Iuser_XXX用户被停用  28.(503)Server unavailable  如果是windows2003,需要将应用程序池的用户改为Iwam_XXX,将默认web站点的用户改为iuser_XXX,同时将两者加入到管理员组中  29.Index and length must refer to a location within the string.Parameter name: length  主要是System.String.Substring(Int32 startIndex, Int32 length) +226 出错,可能是账套号不足三位  30.system.runtime.serialization.serialzationexprction。输入流是无效的二进制格式。开始内容(以字节为单位)是: 3C-68-74-6D-6C-3E-0D-0A-20-20-20-20-3C-68-65-61-64...”。  请检查IIS中的虚拟目录u8applicationEX 是否丢失,如没有请手工增加。
打开防火墙的端口
问题现象: 客户端无法登陆服务器问题原因: 防火墙的端口解决方案: windows自带的防火墙默认情况下是禁用很多端口,在不关闭windows防火墙的情况下如何让用友正常使用呢,只需放开他的端口即可,方法如下:本地连接-属性-高级-设置-例外--添加端口。添加上即可,如果用其他模块请放开相应端口即可。如果是杀毒软件的防火墙一般在杀毒软件防火墙设置里面也有关于网络访问和端口设置的地方,找到相应的节点修改访问规则和端口开关即可让用友正常登陆。 数据仓库配置时提示'sa密码错误或用户名不对'
对应版本: 8.60问题现象: 数据仓库配置时提示'sa密码错误或用户名不对'.重新设置SA口令后问题依旧问题原因: 经检查,SQL端口被用户改为1533,而用友默认1433解决方案: 在数据源(ODBC)添加一个数据源,配置客户端SQL服务的端口为1433;重新配置用友数据源即可.客户端连接不上服务器全攻略检查步骤:1.网络是否通?
方法:ping 服务器名称/ip -t
如果网络不通,就让用户查找网络原因;
如果网络是通的,继续……2.尝试使用ip地址登录服务器
如果无效,继续……3.配置hosts文件,将服务器+ip加入(路径:C:\WINNT\system32\drivers\etc\hosts)
如果配置hosts文件无效,网络解析失效,将应用服务器配置(开始-程序-用友ERP-U8-系统服务-应用服务器配置)中的数据服务器改为IP地址,工作站改为IP登录;
如果依然无效,继续……4.是否跨网段,若是,在ip高级选项中“wins”设置中将服务器的ip添加进去。5.查看服务器的ip设置是静态ip还是自动获取?
若是自动获取,则要求用户改成静态ip;6.是否多网卡,若是,禁用其中一个。7.端口是否畅通?
方法:telnet 服务器名/ip 端口号(sqlsever 1433、ufsoft 4630、web 80)
8.有防火墙?winxp、win2003的自带防火墙,或者商用防火墙软件
方法:关闭防火墙
若客户不愿关闭,则设置防火墙,开放,80端口9.无防火墙?经过telnet测试,1433不通(4630是通的),导致软件无法连接数据库的情况
方法:A、若是win2003,则检查sql server是否安装了sp3补丁,没有安装补丁的话1433端口是无法开通的;(如果确实安装了补丁,则参考下面的方案)
B、如果确实安装了补丁,则参考下面的方案:对于winxp、win2003,由于windows的msdtc安全设置的原因,也会导致1433不通。处理方法:进入windows管理工具下面的组件服务,然后“组件服务-电脑-我的电脑-右键属性-msdtc-安全设置”将“安全设置”中的“允许远程客户端”、“允许远程控制”“允许出站”“允许入站”“不进行验证”等全部设置上。然后1433就可以通了。10.windows的安全设置也有关系,主要是权限的设置。
方法:A、让用户用管理员组中的用户登录系统,通常使用adminstrator;
B、启用guest用户,
C、客户是否做过windows“安全策略”的设置,如果做过,做过哪些内容,再将其改为默认设置,或者将其设置为安全控制较低的那一项;11.数据库问题
方法:1、sa是否设置了口令,如果设置,则清除口令;
2、sql验证方式是否是windows验证,若是,改为混合验证;(企业管理器-右键属性-安全性)
3、注册ado控件,即注册c:\program files\common files\system\ado\所有的DLL文件或者安装微软数据连接控件mdac2.8。12.服务器、工作站运行正常,网络连接正常
方法:一、ACCESS相关版本
1、重装网卡驱动,调整相关参数,建议取默认值
2、采用正版杀毒软件,清理病毒
3、关闭某些杀毒软件附带的防火墙、网镖工具(已知可能和用友软件发生冲突的包括金山毒霸、KV3000、瑞星等)
4、重装相应版本用友软件
二、SQL相关版本
1、重装网卡驱动,调整相关参数,建议取默认值
2、采用正版杀毒软件,清理病毒
3、关闭某些杀毒软件附带的防火墙、网镖工具(已知可能和用友软件发生冲突的包括金山毒霸、KV3000、瑞星等)
4、重装相应版本用友软件使用用友软件时,SQL Server连接中的三个最常见错误!一.&SQL Server 不存在或访问被拒绝&这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多.一般说来,有以下几种可能性:1,SQL Server名称或IP地址拼写有误2,服务器端网络配置有误3,客户端网络配置有误要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因.============= 首先,检查网络物理连接 =============ping &服务器IP地址/服务器名称&如果 ping &服务器IP地址& 不成功,说明物理连接有问题,这时候要检查硬件设备,如网卡,HUB,路由器等.还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如 ISA Server.防火墙软件可能会屏蔽对 ping,telnet 等的响应因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口.如果ping &服务器IP地址& 成功而,ping &服务器名称& 失败则说明名字解析有问题,这时候要检查 DNS 服务是否正常.有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是:1.使用记事本打开HOSTS文件(一般情况下位于C:\WINNT\system32\drivers\etc).添加一条IP地址与服务器名称的对应记录,如:172.168.10.24 myserver2.或在 SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明.============= 其次,使用 telnet 命令检查SQL Server服务器工作状态 =============telnet &服务器IP地址& 1433如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明 SQL Server 服务器工作正常,并且正在监听1433端口的 TCP/IP 连接如果命令返回&无法打开连接&的错误信息,则说明服务器端没有启动 SQL Server 服务,也可能服务器端没启用 TCP/IP 协议,或者服务器端没有在 SQL Server 默认的端口1433上监听.34 80 4630iis==========接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道.是否启用了 TCP/IP 协议等等 =======可以利用 SQL Server 自带的服务器网络使用工具来进行检查.点击:程序 -- Microsoft SQL Server -- 服务器网络使用工具打开该工具后,在&常规&中可以看到服务器启用了哪些协议.一般而言,我们启用命名管道以及 TCP/IP 协议.点中 TCP/IP 协议,选择&属性&,我们可以来检查 SQK Server 服务默认端口的设置一般而言,我们使用 SQL Server 默认的1433端口.如果选中&隐藏服务器&,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接.============= 接下来我们要到客户端检查客户端的网络配置 =============我们同样可以利用 SQL Server 自带的客户端网络使用工具来进行检查,所不同的是这次是在客户端来运行这个工具.点击:程序 -- Microsoft SQL Server -- 客户端网络使用工具打开该工具后,在&常规&项中,可以看到客户端启用了哪些协议.一般而言,我们同样需要启用命名管道以及 TCP/IP 协议.点击 TCP/IP 协议,选择&属性&,可以检查客户端默认连接端口的设置,该端口必须与服务器一致.单击&别名&选项卡,还可以为服务器配置别名.服务器的别名是用来连接的名称,连接参数中的服务器是真正的服务器名称,两者可以相同或不同.别名的设置与使用HOSTS文件有相似之处.通过以上几个方面的检查,基本上可以排除第一种错误.二.&无法连接到服务器,用户xxx登陆失败&该错误产生的原因是由于SQL Server使用了&仅 Windows&的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接.解决方法如下所示:1.在服务器端使用企业管理器,并且选择&使用 Windows 身份验证&连接上 SQL Server2.展开&SQL Server组&,鼠标右键点击SQL Server服务器的名称,选择&属性&,再选择&安全性&选项卡3.在&身份验证&下,选择&SQL Server和 Windows &.4.重新启动SQL Server服务.在以上解决方法中,如果在第 1 步中使用&使用 Windows 身份验证&连接 SQL Server 失败,那就通过修改注册表来解决此问题:1.点击&开始&-&运行&,输入regedit,回车进入注册表编辑器2.依次展开注册表项,浏览到以下注册表键:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]3.在屏幕右方找到名称&LoginMode&,双击编辑双字节值4.将原值从1改为2,点击&确定&5.关闭注册表编辑器6.重新启动SQL Server服务.此时,用户可以成功地使用sa在企业管理器中新建SQL Server注册,但是仍然无法使用Windows身份验证模式来连接SQL Server.这是因为在 SQL Server 中有两个缺省的登录帐户:BUILTIN\Administrators&机器名&\Administrator 被删除.要恢复这两个帐户,可以使用以下的方法:1.打开企业管理器,展开服务器组,然后展开服务器2.展开&安全性&,右击&登录&,然后单击&新建登录&3.在&名称&框中,输入 BUILTIN\Administrators4.在&服务器角色&选项卡中,选择&System Administrators& 5.点击&确定&退出6.使用同样方法添加 &机器名&\Administrator 登录.以下注册表键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode的值决定了SQL Server将采取何种身份验证模式.1.表示使用&Windows 身份验证&模式2.表示使用混合模式(Windows 身份验证和 SQL Server 身份验证).三.提示连接超时如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错.这种情况一般会发生在当用户在Internet上运行企业管理器来注册另外一台同样在Internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误.有些情况下,由于局域网的网络问题,也会导致这样的要解决这样的错误,可以修改客户端的连接超时设置.默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒(这也是为什么在企业管理器里发生错误的可能性比较大的原因).具体步骤为:企业管理器中的设置:1.在企业管理器中,选择菜单上的&工具&,再选择&选项&2.在弹出的&SQL Server企业管理器属性&窗口中,点击&高级&选项卡3.在&连接设置&下的&登录超时(秒)&右边的框中输入一个比较大的数字,如 20.查询分析器中的设置:工具 -- 选项 -- 连接 -- 将登录超时设置为一个较大的数字私信微博:.cn/yijipiaochen
正在读取……
这里是其它用户补充的资源():
暂无补充资源
使用 BBCODE()
类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
勿催片。请相信驴友们对分享是富有激情的,如果确有更新版本,您一定能搜索到。
请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
如果您发现自己的评论不见了,请参考以上4条。
他们也收藏了
上海隐志网络科技有限公司
打个分吧:
留点口水(可选):}

我要回帖

更多关于 压缩包解压错误 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信