Pergunta

Estamos executando parte do nosso aplicativo como um serviço do Windows e ele precisa b capaz de DSNs de acesso, a fim de importação através de ODBC. No entanto, parece haver um monte de restrições encontrada por tentativa e erro no que DSNs ele pode acessar. Por exemplo, parece que ele não pode 1. Acesso DSN sistema de uma a menos que a conta que está executando o serviço tem privilégios de administrador. (Eu recebo um erro de acesso negado, ao tentar se conectar) 2. o acesso de um DSN de usuário que foi criado por um usuário diferente (este é compreensível). 3. acesso de um DSN de arquivo pela rede

Eu li que o propósito de um DSN de arquivo é permitir que outros computadores para usá-lo para conectar-se, no entanto eu não consigo fazer esse trabalho.

O mesmo acontece com qualquer saber, ou sabe onde eu posso descobrir o que todas as regras e restrições no acesso a DSN são quando se usa um serviço do Windows. graças

Foi útil?

Solução

Este é um lugar entre o # 1 e # 2: permissões de arquivos às vezes corretos também são necessárias. Uma vez tive problemas em uma máquina Vista conectar a um DB2 DSN porque, por qualquer motivo (talvez para escrever arquivos temporários, embora eu não sei por que ela faria tal coisa neste local em vez de um específico do usuário um) , o driver necessário acesso de gravação para o diretório onde a IBM tinha instalado os binários do cliente e libs, que tinha sido feito por um administrador e estava na raiz da unidade C.

Outras dicas

Eu acho que você já descobriu as três regras principais si mesmo. : -)

exceto que você provavelmente não precisa de privilégios de administrador para a conta de serviço. IANANA (eu não sou um administrador de rede), mas sua conta do serviço provavelmente só precisa de acesso de leitura a um dos arquivos ODBC ou diretórios.

Você não pode conectar-se a unidades mapeadas com um serviço. A unidade mapeada tem de interagir com a memória chamado de heap do desktop que acompanha os ícones na área de trabalho. Serviços não têm acesso a essa memória. Se você tiver que usar um dsn criar um SystemDSN. melhor seria usar uma seqüência de conexão e loja que no app.config e usar a API de criptografia para criptografar o nome de usuário e senha.

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