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
检查过)