winform 응용 프로그램을 구현했습니다. 나는 구성 학급에 폴더구성 파일이 리디렉션 된 폴더에있을 때 Configuration.Save 메서드가 무단 액세스 오류를 throw합니다.
C에서 설정 파일과 함께 EXE를 저장하여 config 파일에서 응용 프로그램에 대한 사용자 설정을 저장 : 사용자는 \\ \의 AppData \ 로컬
정상적인 경우에는 정상적으로 작동하지만 사용자가 Appdata 폴더를 일부 서버 주소로 리디렉션 한 경우 문제가 발생합니다.이 경우 예외가 발생합니다.
나는 여기에 몇 가지 비슷한 질문을 찾았지만 이들 중 어느 것도 만족스러운 answers.I가 Configuration.Save 명령을 실행하기 전에 설정 파일을 삭제 시도가 없다하지만 예외 제공 :인증되지 않은 작업을 시도했습니다.
구성 파일을 다른 프로그램에 의해 변경되었습니다.
그래서 어떻게이 문제를 해결할 수 있습니까?
1. 공유 :
at System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType
type, String name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier owner, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl)
at System.Security.AccessControl.NativeObjectSecurity.Persist(String
name, SafeHandle handle, AccessControlSections includeSections, Object
exceptionContext)
at System.Security.AccessControl.NativeObjectSecurity.Persist(String
name, AccessControlSections includeSections, Object exceptionContext)
at System.Security.AccessControl.NativeObjectSecurity.Persist(String
name, AccessControlSections includeSections)
at System.Security.AccessControl.FileSystemSecurity.Persist(String
fullPath)
at System.IO.File.SetAccessControl(String path, FileSecurity fileSecurity)
at System.Configuration.Internal.WriteFileContext.DuplicateTemplateAttributes(String source, String destination)
at System.Configuration.Internal.WriteFileContext.DuplicateFileAttributes(String source, String destination)
at System.Configuration.Internal.WriteFileContext.Complete(String
filename, Boolean success)
at System.Configuration.Internal.InternalConfigHost.StaticWriteCompleted(String
streamName, Boolean success, Object writeContext, Boolean assertPermissions) at System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.WriteCompleted(String streamName, Boolean success, Object writeContext, Boolean assertPermissions)
at System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.WriteCompleted(String streamName, Boolean success, Object writeContext)
at
System.Configuration.Internal.DelegatingConfigHost.WriteCompleted(String streamName, Boolean success, Object writeContext)
at System.Configuration.UpdateConfigHost.WriteCompleted(String
streamName, Boolean success, Object writeContext)
at System.Configuration.MgmtConfigurationRecord.SaveAs(String filename,
ConfigurationSaveMode saveMode, Boolean forceUpdateAll)
at System.Configuration.Configuration.SaveAsImpl(String filename, ConfigurationSaveMode saveMode, Boolean forceSaveAll)
at UtilityClasses.ConfigurationHandler.UpdateConfigFile(String key, String value, Boolean param)
코드를 공유하십시오. –
@ S.Petrosov 코드를 추가하십시오. –
문제는 응용 프로그램을 실행하는 사용자가 해당 경로에 대한 사용 권한이 없다는 것입니다. –