我应该将什么以及如何放入app.config
文件中。
场景是这样的,我创建了一个 C# Windows Forms 应用程序(.NET 4.0),它在开发计算机上运行良好。当我在其他计算机上使用 ClickOnce 部署它时,我收到该machine.config
文件的权限错误。这是一个公司域,因此我无权更改machine.config
目标计算机上文件中的权限。从我一直在阅读的内容来看,我相信文件中正在访问的任何内容都machine.config
可以交替放入app.config
文件中。问题是我确实了解需要将什么放入app.config
文件中,并且我不了解配置的某些方面,例如“键”等。
我怎样才能machine.config
完全避免使用该文件,以及究竟需要配置什么?
完整的错误详情:
平台版本信息
Windows : 5.1.2600.196608 (Win32NT)
Common Language Runtime : 4.0.30319.296
System.Deployment.dll : 4.0.30319.1 (RTMRel.030319-0100)
clr.dll : 4.0.30319.296 (RTMGDR.030319-2900)
dfdll.dll : 4.0.30319.1 (RTMRel.030319-0100)
dfshim.dll : 4.0.31106.0 (Main.031106-0000)
SOURCES
Deployment URL: file:///P:/Eastops/Region%20C/Conie/HHC/HHC.application
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of P:\Eastops\Region C\Conie\HHC\HHC.application resulted in an exception. The following
failure messages were detected:
+ Configuration system failed to initialize
+ An error occurred loading a configuration file: Access to the
path 'C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\machine.config' is
denied. (C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\machine.config)
+ Access to the path 'C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\machine.config'
is denied.
COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.
WARNINGS
There were no warnings during this operation.
OPERATION PROGRESS STATUS
* [4/17/2013 8:29:25 AM] : Activation of P:\Eastops\Region C\Conie\HHC\HHC.application has started.
ERROR DETAILS
Following errors were detected during this operation.
* [4/17/2013 8:29:27 AM] System.Configuration.ConfigurationErrorsException
- Configuration system failed to initialize
- Source: System.Configuration
- Stack trace:
at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
at System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName)
at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
at System.Configuration.ConfigurationManager.GetSection(String sectionName)
at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection()
at System.Diagnostics.DiagnosticsConfiguration.Initialize()
at System.Diagnostics.DiagnosticsConfiguration.get_Sources()
at System.Diagnostics.TraceSource.Initialize()
at System.Net.Logging.InitializeLogging()
at System.Net.Logging.get_On()
at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase)
at System.Net.WebRequest.Create(Uri requestUri)
at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
at System.Deployment.Application.DownloadManager.DownloadManifestAsRawFile(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirectBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
--- Inner Exception ---
System.Configuration.ConfigurationErrorsException
- An error occurred loading a configuration file: Access to the
path 'C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\machine.config' is
denied. (C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\machine.config)
- Source: System.Configuration
- Stack trace:
at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
--- Inner Exception ---
System.UnauthorizedAccessException
- Access to the path 'C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\machine.config' is denied.
- Source: mscorlib
- Stack trace:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at System.Configuration.Internal.InternalConfigHost.StaticOpenStreamForRead(String streamName)
at System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.OpenStreamForRead(String streamName, Boolean assertPermissions)
at System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.OpenStreamForRead(String streamName)
at System.Configuration.ClientConfigurationHost.OpenStreamForRead(String streamName)
at System.Configuration.BaseConfigurationRecord.InitConfigFromFile()
COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.