FileSystemWatcher c#权限问题

本文关键字:问题 权限 FileSystemWatcher | 更新日期: 2023-09-27 18:09:48

我在一个域上,读取路径''machinecap'platform'in

平台为共享,本地通向E:'cappuccino'platform。该应用程序是在c# . net 2.0中制作的Windows服务,它使用FileSystemWatcher读取路径''machinecap'platform'in,以创建和重命名文件。

我有"完全控制"的权限,因为''machinecap'platform(包括所有子目录),但只有这个,没有访问任何文件夹在服务器(是Windows server 2003)。

问题是当一个文件到达服务器时,服务崩溃了,事件查看器中没有记录(下降)消息。为了跟踪问题,我在服务器上进行了登录,并尝试手动运行应用程序执行的所有步骤。我可以在"in"文件夹中创建文件,但是我不能删除这些文件…显示错误消息:"E:' is not accessible. Access is denied."

当然我没有任何访问E:' root文件夹,只有E:'cappuccino'platform…这就是问题所在吗?为了读E:'cappuccino'platform,我真的必须给E:'读权限吗?

更多信息

异常消息:

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组件。我认为问题与此有关,不确定....你知道怎么解决这个问题吗?

FileSystemWatcher c#权限问题

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

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