none
Access to the path ... is denied.

    Question

  • Galera, fiz uma aplicação onde eu cadastro um professor e automaticamente crio um arquivo xml com o nome dele e tal para poder usar em uma galeria de fotos, pois cada professor tera uma.

    Ate ai td normal, cadastro as fotos em um datatable e no fim gravaria nesse Xml que estou colocando dentro da pasta App_Data.

    Na minha maquina localmente funciona perfeitamente, porem no servidor quando tento finalizar e gravar as informações no XML q esta na pasta App_Data me retorna o seguinte erro:

     

    Server Error in '/adm' Application.

    Access to the path "path" is denied.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.UnauthorizedAccessException: Access to the path "path" is denied.

    ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6) that is used if the application is not impersonating. If the application is impersonating via <identity impersonate="true"/>, the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user.

    To grant ASP.NET access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the appropriate user or group. Highlight the ASP.NET account, and check the boxes for the desired access.

    Source Error:

    Line 150:        objDS.Tables.Add((DataTable)Session["Foto"]);
    Line 151:
    Line 152:        objDS.WriteXml(MapPath("../App_Data//") + ddProfessor.SelectedItem.Text + ".xml");
    Line 153:
    Line 154:        Response.Redirect("Cad_Professores_Fotos.aspx");

    Source File: e:\Sites\Intranet\adm\Mod_ProReitoria\Cad_Professores_Fotos.aspx.cs    Line: 152

    Stack Trace:

    [UnauthorizedAccessException: Access to the path 'E:\Sites\Intranet\adm\App_Data\Ary Gomes da Silva.xml' is denied.]
       System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +7716623
       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) +1162
       System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) +66
       System.Xml.XmlTextWriter..ctor(String filename, Encoding encoding) +37
       System.Data.DataSet.WriteXml(String fileName, XmlWriteMode mode) +81
       System.Data.DataSet.WriteXml(String fileName) +6
       Mod_ProReitoria_Cad_Professores_Fotos.btnSalvar_Click(Object sender, EventArgs e) in e:\Sites\Intranet\adm\Mod_ProReitoria\Cad_Professores_Fotos.aspx.cs:152
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
    


    Version Information: Microsoft .NET Framework Version:2.0.50727.4016; ASP.NET Version:2.0.50727.4016

    Desenvolvedor Web
    Tuesday, September 01, 2009 2:21 PM

Answers

  • É problema de permissão de escrita na pasta, basta setar!

    Programador Web C# .NET
    Email: ivan@faqsite.com.br
    Portifólio: http://www.faqsite.com.br
    Cel: +55(61) 8406-9719
    Fixo: +55(61) 3395-3383

    "Porque Deus amou o mundo de tal maneira, que deu seu único Filho para que todo aquele que nele crê, não pereça, mas tenha a vida eterna." (João 3:16)

    • Marked as answer by Daniel Dac Tuesday, September 01, 2009 7:03 PM
    Tuesday, September 01, 2009 2:31 PM

All replies

  • É problema de permissão de escrita na pasta, basta setar!

    Programador Web C# .NET
    Email: ivan@faqsite.com.br
    Portifólio: http://www.faqsite.com.br
    Cel: +55(61) 8406-9719
    Fixo: +55(61) 3395-3383

    "Porque Deus amou o mundo de tal maneira, que deu seu único Filho para que todo aquele que nele crê, não pereça, mas tenha a vida eterna." (João 3:16)

    • Marked as answer by Daniel Dac Tuesday, September 01, 2009 7:03 PM
    Tuesday, September 01, 2009 2:31 PM
  • olá...

    tente...

     objDS.WriteXml(MapPath("../App_Data/" + ddProfessor.SelectedItem.Text + ".xml"));

    Espero ter ajudado, boa sorte! Fábio Morikawa
    Tuesday, September 01, 2009 2:38 PM
  • Rapaz eu dei a permissão so q ainda persiste.
    Desenvolvedor Web
    Tuesday, September 01, 2009 2:51 PM
  • Fabio, esta mudança tambem não teve efeito. mesmo pq localmente funciona.


    Desenvolvedor Web
    Tuesday, September 01, 2009 2:56 PM
  • olá..

    A) verifique se este arquivo não está aberto acima no seu código...

    B) verifique se existe isso no web.config "<identity impersonate="true"/> " e set para "false" caso possível

    C) verifique também o acesso anônimo no iis (caso seja possível)




    Espero ter ajudado, boa sorte! Fábio Morikawa
    Tuesday, September 01, 2009 2:58 PM
  • Daniel tenho certeza q é permissão, pois ja passei pelo mesmo problema... outra solução tb, seria utilizar outra pasta, se me recordo bem ja tive problemas em acessar esta pasta online..

    Programador Web C# .NET
    Email: ivan@faqsite.com.br
    Portifólio: http://www.faqsite.com.br
    Cel: +55(61) 8406-9719
    Fixo: +55(61) 3395-3383

    "Porque Deus amou o mundo de tal maneira, que deu seu único Filho para que todo aquele que nele crê, não pereça, mas tenha a vida eterna." (João 3:16)

    Tuesday, September 01, 2009 3:08 PM
  • Daniel, em seu diretório que recebe este arquivo xml, de permissão de escrita para o usuário que está configurado no seu IIS. Geralmente é para o usuário IUSR_NomeMaquina, que você deve atribuir as permissões de modificação! Caso ainda persista, de permissão ao usuário ASP.Net!

    Espero que ajude
    um abraço
    att, 

    Felipe Oriani - www.felipeoriani.com.br

    ...O rio atinge os seu objetivos porque aprendeu a contornas os obstáculos... por André Luiz
    Tuesday, September 01, 2009 4:59 PM
  • Acredito q seja permissão mesmo, porem não achei a solução, ate onde eu pude dar permissão eu dei e nao funcionou.

    Resolvi tirando da pasta App_Data e colocando em uma pasta normal!


    Desenvolvedor Web
    Tuesday, September 01, 2009 6:55 PM
  • Na próxima tente dar acesso pro usuário local\IIS_WPG
    Friday, March 05, 2010 9:32 PM