Pergunta

Atualmente, estou trabalhando em um aplicativo ASP.NET no VB.NET e uma de suas funções é usar o Agendador de Tarefas do Windows. O aplicativo precisará de controle completo sobre isso, pois precisa criar, modificar, excluir e executar tarefas.

eu encontrei Esta biblioteca Para ajudar com tudo e funciona bem, mas apenas localmente na minha máquina Windows XP. Assim que implanto o aplicativo no iis6 no Windows Server 2003 e acesse as páginas que usam meu objeto Scheduler, recebo o seguinte erro.

Acesso negado. (Exceção de HRESULT: 0x80070005 (e_accessdenied))

Procurei várias soluções na rede que incluem fornecer usuários específicos (e até todos) permissões para %windir % tarefas usando CACLs que não funcionaram e também usando a representação e adicionando o iuser ao grupo de usuários de operações de backup que não " T funciona como o aplicativo deve usar a autenticação integrada do Windows.

Uma coisa que está me confundindo sobre toda a situação é que o usuário que estou conectado ao testar o aplicativo pode ter uma área de trabalho remota com bastante alegria e fazer login no servidor e misturar com o agendador de tarefas. Além disso, se eu executar o aplicativo localmente no Visual Studio (ainda sob o mesmo usuário) e apontar o aplicativo no agendador de tarefas do servidor, ele funciona bem. Além disso, se eu executar o aplicativo do servidor e apontá -lo no meu agendador de tarefas local, recebo o mesmo erro de "acesso negado". Tudo isso me faz pensar que não é uma coisa de permissões de agendamento de tarefas, mas algo a ver com permissões em alguns componentes que a biblioteca do agendador de tarefas está tentando usar.

Alguém sabe o que eu poderia fazer para resolver isso ou mesmo apenas um ponteiro na direção certa, pois isso me deixa louco há mais de um dia. Devo dizer que sou um novato quando se trata de problemas de IIS, representação e segurança do Windows Server.

Muito obrigado

Foi útil?

Solução

Ei, eu sei, posso estar atrasado, o que você pode fazer é definir a tarefa a ser executada sob a autoridade nt System para esse uso

(C#)

string null = null; tarefa.SetAccountInformation ("", nulo);

e configurá -lo para o usuário atual, dê o nome de usuário

string userName = "seu nome de usuário XP";
ou string userName = System.Security.principal.windowsidentity.getCurrent (). Nome; string null = null;

Task.SetAccountInformation (nome de usuário, nulo);

Isso vai funcionar para você, espero !!!! E me diga como foi !!!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top