Jump to content
Sign in to follow this  
sammael

Sem permissão para criar ficheiro XML no .NET

Recommended Posts

sammael

Boas pessoal,

Tenho que fazer um portal para uma empresa, e estava tudo a correr bem até que precisei de escrever num ficheiro XML. O visual studio diz que não tem permissões para escrever nesse ficheiro. Eu já atribui as permissões, tal como o Visual Studio aconselha, ir ao ficheiro, click com o botão direito, Porpiedades, Separador Segurança, Add, Escolher a conta do ASP.NET e dar as permissões. Fiz isso (dei permissões para tudo), ao ficheiro na pasta do projecto mas continuo com o mesmo problema, tentei ir ao directório referido neste output e o ficheiro "nodeInfos.xml" nem sequer existe, mesmo assim tentei dar as mesmas permissões à pasta 10.0, ou a outra pasta da hierarquia e nem sequer podia adicionar a conta do ASP para atribuir as permissões. Deixo aqui o output gerado pelo VS 2010, se alguém souber como resolver, por favor ajudem, já estou a dar em tolo.

Access to the path 'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\nodeInfos.xml' is denied.

O erro vem desta linha:

XmlTextWriter textWriter = new XmlTextWriter("nodeInfos.xml", null)

E fica também o Stack Trace, caso ajude:

Stack Trace:

[unauthorizedAccessException: Access to the path 'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\nodeInfos.xml' is denied.]

  System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +9726046

  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) +1142

  System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) +83

  System.Xml.XmlTextWriter..ctor(String filename, Encoding encoding) +37

  _Default.xmlWriter() in d:\Users\VDFLOCAL\My Documents\Visual Studio 2010\WebSites\Portal Vodafone\Default.aspx.cs:82

  _Default.Page_Load(Object sender, EventArgs e) in d:\Users\VDFLOCAL\My Documents\Visual Studio 2010\WebSites\Portal Vodafone\Default.aspx.cs:28

  System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14

  System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35

  System.Web.UI.Control.OnLoad(EventArgs e) +91

  System.Web.UI.Control.LoadRecursive() +74

  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

Share this post


Link to post
Share on other sites
sammael

Ok ao que parece consegui resolver o problema e deixo já a solução caso alguém "ande ás aranhas" como eu andei na net à procura da solução. Ao que parece o VS usa o directório "C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\" durante o desenvolvimento dos projectos, contudo neste directório o VS não tem permissões para modificar/criar ficheiros, nem sei se há como as adicionar, então se utilizarmos ou o caminho absoluto para o ficheiro, na pasta do projecto ou:

 Server.MapPath("caminho relativo para o ficheiro") 

, os problemas das permissões acabam. Espero que isto possa dar jeito a alguém. Abraço a todos.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.