Hello,

looks like that "C:\ProgramData" assumed as CommonApplicationData is
only available since Vista/Win2k8.
On WinXp & co it is: "C:\Documents and
Settings\All Users\ApplicationData\" which is not writeable by everyone.

The recommend way to running a service is to create a new user account
including profile for it with the required privileges only.
For example, create user CruiseControl in group Users.

Then using LocalApplicationData is the best choice, as we do currently
on Unix with ccnet.
On Windows it will be "C:\Users\CruiseControl\AppData\Local"
On unix it is: $HOME/.local/share/ (for example /home/ccnet/.local/share/)

Daniel

Daniel Hommel schrieb:
> On 16 Jun., 06:26, Craig Sutherland <[email protected]> wrote:
>   
>> Hello all,
>>
>> We have identified some issues with Vista, Win2K8 and Win7 not liking
>> CC.NET using program files for storing data.
>>
>> I have implemented CCNET-1565, which moves data storage to
>> Environment.GetFolderPath
>> (Environment.SpecialFolder.CommonApplicationData) instead of using
>> CurrentDirectory (either the Path or Environment versions).
>>
>> While this gets around the security issue, this will be a breaking
>> change. This is because currently a lot of data is stored under
>> program files. This data will need to be moved across to program data
>> as part of an upgrade process.
>>
>> Does anyone have enough knowledge of NSIS to know how to do this?
>>
>> Craig
>>     
>
>
> Hi All,
>
> today i updated my test installation to the latest build and after
> that my webdashboard didn't work as expected. First it didn't find the
> dashboard.config at all. After i placed it in the
> CommonApplicationData folder the dashboard was showing up, but it
> didn't show the server "localhost" which is configured by default.
> Trying to add a server using the administration interface leads to the
> following excpeption on my system (german Windows XP).
>
> Exception Message
>
> Der Zugriff auf den Pfad "C:\Dokumente und Einstellungen\All Users
> \Anwendungsdaten\CruiseControl.NET\WebDashboard\dashboard.config"
> wurde verweigert.
> Exception Full Details
> System.UnauthorizedAccessException: Der Zugriff auf den Pfad "C:
> \Dokumente und Einstellungen\All Users\Anwendungsdaten
> \CruiseControl.NET\WebDashboard\dashboard.config" wurde verweigert.
> bei System.IO.__Error.WinIOError(Int32 errorCode, String
> maybeFullPath) bei 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) bei
> System.IO.FileStream..ctor(String path, FileMode mode, FileAccess
> access, FileShare share) bei System.Xml.XmlTextWriter..ctor(String
> filename, Encoding encoding) bei System.Xml.XmlDocument.Save(String
> filename) bei
> ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration.AdministerAction.SaveServer
> (IRequest request, Hashtable velocityContext) bei
> ThoughtWorks.CruiseControl.WebDashboard.Plugins.Administration.AdministerAction.Execute
> (ICruiseRequest cruiseRequest) bei
> ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.CruiseActionProxyAction.Execute
> (IRequest request) bei
> ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ExceptionCatchingActionProxy.Execute
> (IRequest request)
>
> regards,
>
> Daniel
>   

Reply via email to