As vezes voce esta fazendo um website ou sistema web em Asp.Net que precisa ler e gravar um arquivo em uma determinada pasta. Geralmente e uma subpasta do proprio aplicativo.Quando voce tenta rodar a aplicacao recebe uma mensagem de erro dizendo que a aplicacao nao tem privilegios para gravar o dito cujo arquivo.Geralmente, quando isso acontecia, eu ia la nas configuracoes avancadas do AppPool e trocava o ApplicationPoolIdentity por NetworkService ou coisa assim, e dava permissao na pasta para o NetworkService. Afinal o AppPool cria um usuario instantaneo para o ApplicationPoolIdentity e esse cara nao existe no windows, nao tem como dar permissao pra ele, certo? Errado.Geralmente o usuario e ApplicationPoolIdentityMuita gente troca para NetworkServiceVoce pode dar permissao para o ApplicationPoolIdentity fazendo o seguinte: na hora de escolher o nome do usuario que tera acesso a pasta da sua aplicacao (la no inetpub/wwwroot/SeuApp/ voce coloca o nome do seu AppPoll prefixado de IIS AppPool\.Por exemplo: se o nome do seu AppPool e DefaultAppPool, entao o nome do usuario (em local machine) e IIS AppPool\DefaultAppPool. Se e HelDesk, entao IIS AppPool\HelpDesk e assim por diante.Na figura o nome do meu AppPool e DNN2, porque e o segundo appPool que criei para meu DotNetNuke. Digite iis apppool\NomeDoPoolQuando voce digita IIS AppPool\NomeDoPool o usuario nao existe, mas quando voce verifica o nome (check names) o nome e substituido automaticamente pelo nome do AppPool, mas se voce digitar o nome do appPool direto nao funciona.Depois de dar um Check o nome vira o proprio appPoolFonteshttp://stackoverflow.com/questions/7334216/iis7-permissions-overview-applicationpoolidentityhttps://www.iis.net/learn/manage/configuring-security/application-pool-identitieshttp://stackoverflow.com/questions/5437723/iis-apppoolidentity-and-file-system-write-access-permissions If you get Could not load type System.ServiceModel.Activation.HttpModule from assembly System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.error trying to access a webservice in .net framework 4.0 or 4.5 it is caused by a conflict between 3.0 and 4.0 version.Fortunately you can fix it in a per application basis. You have only to go to IIS Manager, select your application, double click in modules and delete ServiceModel version 3.0 module. If you need version 3.0 again or delete 4.0 accidentally you can fix it adding the module again, using the strings below to register the asemblies.ServiceModel - System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089ServiceModel-4.0 - System.ServiceModel.Activation.ServiceHttpModule, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Enjoy :) Como resolver o erro:Nao foi possivel carregar o tipo System.ServiceModel.Activation.HttpModule do assembly System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.Alguns recursos / modulos e assemblies do .net causam conflitos entre as versoes. Esses conflitos sao causados pelo IIS, que "Nao sabe" qual a versao correta do assembly carregar, mesmo se o application pool esta configurado com a versao correta.Felizmente essas configuracoes podem ser corrigidas em cada application no IIS.Esse erro especificamente e causado por um conflito entre as versoes 3.0 e 4.0 do assembly ServiceModel.Se sua aplicacao e em .net 4.0 ou 4.5 e voce obteve este erro ao tentar abrir um webservice va ao IIS (Painel de controle / Ferramentas Administrativas / Gerenciador do Servicos de Informacoes da Internet (IIS) ), abra o seu site, de um duplo clique em modulos.Delete o modulo ServiceModel, deixando apenas o ServiceModel-4.0.Caso voce necessite dele novamente, ou tenha apagado o 4.0 por engano, abaixo encontram-se as strings para registrar os assemblies.System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0,