FileSystemWatcher C#权限问题

FileSystemWatcher C#权限问题,c#,.net,.net-2.0,odp.net,filesystemwatcher,C#,.net,.net 2.0,Odp.net,Filesystemwatcher,我在一个域上,阅读路径\\machinecap\platform\in 该平台是一个共享平台,它在本地导致E:\cappuccino\platform。该应用程序是C#.NET 2.0中的Windows服务,它使用FileSystemWatcher在中读取创建和重命名文件的路径\\machinecap\platform\ 自\\machinecap\platform以来,我拥有“完全控制”权限(包括所有子目录),但仅此权限,无法访问服务器中的任何其他文件夹(是Windows server 200

我在一个域上,阅读路径
\\machinecap\platform\in

该平台是一个共享平台,它在本地导致
E:\cappuccino\platform
。该应用程序是C#.NET 2.0中的Windows服务,它使用FileSystemWatcher在中读取创建和重命名文件的路径
\\machinecap\platform\

\\machinecap\platform
以来,我拥有“完全控制”权限(包括所有子目录),但仅此权限,无法访问服务器中的任何其他文件夹(是Windows server 2003)

问题在于,当文件到达服务器时,服务会崩溃,并且事件查看器中不会记录(下降)消息。为了追踪问题,我在服务器上做了一个日志,并尝试手动运行应用程序执行的所有步骤。我可以在“in”文件夹中创建文件,但无法删除这些文件。。。将显示一条错误消息:
“E:\不可访问。访问被拒绝。”

当然,我没有访问E:\root文件夹的权限,只有
E:\cappuccino\platform
。。。这就是问题所在吗?我真的必须授予
E:\
读取权限才能读取
E:\cappuccino\platform

更多信息

异常消息:

Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'Oracle.DataAccess, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies.
An attempt was made to load a program with an incorrect format.
File name: 'Oracle.DataAccess, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342'
   at TestRiskStore.ArisReportReader.CreateOrRename(Object source, FileSystemEventArgs e)
   at System.IO.FileSystemWatcher.CompletionStatusChanged(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* overlappedPointer)
   at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

请注意,我使用的是Oracle.DataAccess组件。。我认为问题与此有关,不确定。。。。知道如何解决这个问题吗?

我发现了问题:我的机器是32位的,服务器是64位的,我正在编译应用程序以在任何平台上运行。问题是它安装在服务器上的OracleDataAccess组件是32位的,因此程序集只安装在GAC_32文件夹上。因此,当应用程序尝试在64位模式下运行时,它找不到程序集


因此,我只是将应用程序重新编译为x86(32位),它工作正常。现在,应用程序在32位模式下运行,并在正确的文件夹中查找程序集。

还有一条注释。。。当我打开cmd并键入
E:[输入]
时,我收到了相同的错误消息:拒绝访问您发布的错误消息与“拒绝访问”无关。你发布了错误的异常吗?这只是我收到的错误消息。“拒绝访问”是在对服务器进行了一些调查之后出现的,我认为该问题可能与程序集上缺少权限有关。。但是我已经检查过了,它有适当的权限(我用
cacls
检查过)