我有一个在Novell网络上运行的WinForms客户端 - 服务器应用程序,当连接到网络上的单独Windows 2003 Server时会产生以下错误:
TYPE: System.IO.IOException
MSG: Logon failure: unknown user name or bad password.
SOURCE: mscorlib
SITE: WinIOError
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalGetFileDirectoryNames(String path,
String userPathOriginal, String searchPattern, Boolean includeFiles,
Boolean includeDirs, SearchOption searchOption)
at System.IO.DirectoryInfo.GetFiles(String searchPattern,
SearchOption searchOption)
at System.IO.DirectoryInfo.GetFiles(String searchPattern)
at Ceoimage.Basecamp.DocumentServers.ClientAccessServer.SendQueuedFiles(
Int32 queueId, Int32 userId, IDocQueueFile[] queueFiles)
at Ceoimage.Basecamp.ScanDocuments.DataModule.CommitDocumentToQueue(
QueuedDocumentModelWithCollections doc, IDocQueueFile[] files)
Run Code Online (Sandbox Code Playgroud)
客户的网络管理员通过手动将工作站用户名和密码与服务器上的本地用户同步来管理Windows Server连接.关于错误的奇怪之处在于用户可以在错误之前和之后写入服务器,所有这些都没有明确登录.
你能解释一下错误发生的原因并提供解决方案吗?
我有一个多线程C#应用程序,它创建文件,打开它们进行处理,然后在完成后删除它们.此应用程序可以处理1到100个文件.有点随机(很可能归因于应用程序的多线程特性)当我尝试在处理后删除文件时,我收到了共享冲突.我的直觉说,维克,在尝试删除文件之前,你没有正确关闭/处理文件.如果它发生在每个文件中,我会坚持我的直觉,但事实并非如此.所以,我试图找出我犯了错误的地方.那里的任何人都有关于如何调试这种类型的异常的指示?如果有意义,我很乐意在文件上看到堆栈跟踪.
我将尝试显示伪代码,但是,我的问题更多的是如何调试这种类型的异常:
应用事件:
操作开始 + =创建新处理器.
传输文件 + = Processor.ProcessFile并将新的Document对象添加到处理器的文档集合(作为路径,而不是文件)
操作完成 + = Processor.Aggregate files,创建包含文件内容的新文件.完成此方法后,它将调用ProcessorFinished.
处理器事件:
处理器已完成 + = Application_CleanUpProcessor.在这种方法中,我处理了处理器,处理器又处理了一个删除文件的文件对象.
我有休眠查询:
getSession()
.createQuery("from Entity where id in :ids")
.setParameterList("ids", ids)
.list();
Run Code Online (Sandbox Code Playgroud)
其中 ids 是 Collection id,可以包含很多 id。目前,当集合非常大时,我遇到了异常: java.io.IOException: Tried to send an out-of-range integer as a 2-byte value 我听说 postgre 有一些问题。但是我找不到如何在 hql 上重写它的解决方案。
我正在寻找一个特定于平台(特定于JRE)的IOException消息列表,指示磁盘已满或空间不足.
到目前为止,我有:
There is not enough space on the diskNot enough spaceNo space left on device我希望Java为此创建一个IOException子类...
我在从Android平台上的InputStream读取时遇到了一个奇怪的问题.我不确定这是Android特定的问题,还是我一般都做错了.
唯一特定于Android的是此调用:
InputStream is = getResources().openRawResource(R.raw.myfile);
Run Code Online (Sandbox Code Playgroud)
这将从Android资产返回文件的InputStream.无论如何,这是我遇到问题的地方:
bytes[] buffer = new bytes[2];
is.read(buffer);
Run Code Online (Sandbox Code Playgroud)
当read()执行时抛出IOException.奇怪的是,如果我执行两个连续的单字节读取(或任意数量的单字节读取),则没有例外.例如,这有效:
byte buffer;
buffer = (byte)buffer.read();
buffer = (byte)buffer.read();
Run Code Online (Sandbox Code Playgroud)
任何想法为什么两个连续的单字节读取工作,但一次调用同时读取两个引发异常?该InputStream中似乎罚款... is.available()回报超过一百万个字节(因为它应该).
堆栈跟踪显示在以下行之前的这些行InputStream.read():
java.io.IOException
at android.content.res.AssetManager.readAsset(Native Method)
at android.content.res.AssetManager.access$800(AssetManager.java:36)
at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:542)
Run Code Online (Sandbox Code Playgroud)
将缓冲区大小更改为单个字节仍会引发错误.看起来只有在读入字节数组时才会引发异常.
如果我将文件截断为100,000字节(文件最初为:1,917,408字节),它可以正常工作.超过一定大小的文件有问题吗?
任何帮助表示赞赏!
谢谢!
我有一个为Android设备编写的项目.它每天都会生成大量文件.这些都是文本文件和图像.该应用程序使用数据库来引用这些文件.
该应用程序应该在一点点使用后(可能在几天之后)清理这些文件,但这个过程可能会也可能不会起作用.这不是这个问题的主题.
由于历史性事故,文件的组织有点幼稚:一切都在同一个目录中; .hidden包含零字节.nomedia文件的目录,以防止MediaScanner对其进行索引.
今天,我看到报告错误:
java.io.IOException: Cannot create: /sdcard/.hidden/file-4200.html
at java.io.File.createNewFile(File.java:1263)
Run Code Online (Sandbox Code Playgroud)
关于SD卡,我看到它有足够的存储空间,但数量
$ cd /Volumes/NO_NAME/.hidden
$ ls | wc -w
9058
Run Code Online (Sandbox Code Playgroud)
删除大量文件似乎允许今天的文件创建继续进行.
遗憾的是,我没有尝试touch使用新文件来尝试在命令行上重现错误; 我还删除了几百个文件,而不是少数几个.
但是,我的问题是:
Nota Bene:SD卡是原样的 - 即我没有格式化它,所以我猜它会是FAT-*格式.
FAT-32格式的文件大小限制为2GB(远高于我正在处理的文件大小)和根目录中文件数量的限制.我绝对不会在根目录中编写文件.
我跑了namenode -format.这是我的输出.我尝试更改文件权限chmod 777 hadoop.
我相信这行是错误ERROR namenode.NameNode:java.io.IOException:无法创建目录/ your/path/to/hadoop/tmp/dir/hadoop-hadoop/dfs/name/current
adoop@alexander-desktop:/usr/local/hadoop/bin$ ./hadoop namenode -format
12/07/03 17:03:56 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = alexander-desktop/127.0.1.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 0.20.2
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010
************************************************************/
12/07/03 17:03:56 INFO namenode.FSNamesystem: fsOwner=hadoop,hadoop
12/07/03 17:03:56 INFO namenode.FSNamesystem: supergroup=supergroup
12/07/03 17:03:56 INFO namenode.FSNamesystem: isPermissionEnabled=true
12/07/03 17:03:56 ERROR namenode.NameNode: java.io.IOException: Cannot create directory /your/path/to/hadoop/tmp/dir/hadoop-hadoop/dfs/name/current
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:295)
at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1086)
at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1110)
at …Run Code Online (Sandbox Code Playgroud) 为什么我收到以下异常:
Exception in thread "main" java.io.IOException: Push back buffer is full
at java.io.PushbackInputStream.unread(PushbackInputStream.java:232)
at java.io.PushbackInputStream.unread(PushbackInputStream.java:252)
at org.tests.io.PushBackStream_FUN.read(PushBackStream_FUN.java:32)
at org.tests.io.PushBackStream_FUN.main(PushBackStream_FUN.java:43)
Run Code Online (Sandbox Code Playgroud)
在这段代码中:
public class PushBackStream_FUN {
public int write(String outFile) throws Exception {
FileOutputStream outputStream = new FileOutputStream(new File(outFile));
String str = new String("Hello World");
byte[] data = str.getBytes();
outputStream.write(data);
outputStream.close();
return data.length;
}
public void read(String inFile, int ln) throws Exception {
PushbackInputStream inputStream = new PushbackInputStream(new FileInputStream(new File(inFile)));
byte[] data = new byte[ln];
String str;
// read
inputStream.read(data);
str = …Run Code Online (Sandbox Code Playgroud) 您好我尝试在eclipse中运行以下cmd代码:
"DIR \""+DEV_HOME+"\\src\"\\*.java /b /s >> \""+DEV_HOME+"\\bin\\javaFiles.txt\""
Run Code Online (Sandbox Code Playgroud)
显然它看起来像这样:
DIR "D:\Thomas\Dokumente\Daten\workspace\WBRLight\src"\*.java /b /s >> "D:\Thomas\Dokumente\Daten\workspace\WBRLight\bin\javaFiles.txt"
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误消息:
java.io.IOException: Cannot run program "dir": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
at java.lang.Runtime.exec(Runtime.java:617)
at java.lang.Runtime.exec(Runtime.java:450)
....
Run Code Online (Sandbox Code Playgroud)
当我尝试在cmd框中使用代码时,它的工作正常.我的代码:
public void run_cmdLine(String command) {
try {
Runtime rt = Runtime.getRuntime();
BufferedReader input = null;
Process pr = null;
pr = rt.exec(command);
input = new BufferedReader(new inputStreamReader(pr.getInputStream()));
String line = null;
while ((line = input.readLine()) != null) {
System.out.println(line);
}
int exitVal …Run Code Online (Sandbox Code Playgroud) 由于Heartbleed,我们的网关服务器已更新,此问题出现了.
由于POODLE,不再支持SSLv3.
客户端应用程序(.NET 2.0)位于Windows 7(或8)框中.服务器在网关服务器后面的DMZ内运行.请注意,我发现.NET 4.0+上不再存在这个问题 - 但是由于遗留代码,我没有更新的奢侈.
Gateway Server是一个传递框,运行带有SSL的Apache HTTP Server.它的位置在DMZ之外,用于访问DMZ内部的服务器.在Gateway服务器上运行的软件版本是Apache/2.2.25(Win32),mod_jk/1.2.39,mod_ssl/2.2.25,OpenSSL/1.0.1g
以下是客户端应用程序上使用的代码(添加了大量的日志记录)...注意,'serverName'通常包含诸如" https://some.url.com "之类的值.
private bool ConnectAndAuthenicate(string serverName, out TcpClient client, out SslStream sslStream)
{
client = null;
sslStream = null;
try
{
client = new TcpClient(serverName, 443); // Create a TCP/IP client; ctor attempts connection
Log("ConnectAndAuthenicate: Client CONNECTED"));
sslStream = new SslStream(client.GetStream(), false, ValidateServerCertificate, null);
Log("ConnectAndAuthenicate: SSL Stream CREATED"));
}
catch (Exception x)
{
Log("ConnectAndAuthenicate: EXCEPTION >> CONNECTING to server: …Run Code Online (Sandbox Code Playgroud)