Pergunta

Eu configurei um controle ActiveX para ser executado em uma página da web. O servidor pode servir esta página da Web a si mesma, mas outras máquinas na intranet e na Internet não conseguem acessá -la.

As configurações de Caspol são assim:

Grupos de código:

1.  All code: FullTrust
   1.1.  Zone - MyComputer: FullTrust
      1.1.1.  StrongName - (omitted) : FullTrust
      1.1.2.  StrongName - 00000000000000000400000000000000: FullTrust
   1.2.  Zone - Intranet: FullTrust
      1.2.1.  All code: Same site Web
      1.2.2.  All code: Same directory FileIO - 'Read, PathDiscovery'
   1.3.  Zone - Internet: Internet
      1.3.1.  All code: Same site Web
   1.4.  Zone - Untrusted: Nothing
   1.5.  Zone - Trusted: Internet
      1.5.1.  All code: Same site Web
   1.6.  Url - http://MYSERVERNAME/APPLICATIONNAME/*: FullTrust
Success

O aplicativo que estou tentando acessar é o Grupo 1.6. Estou fazendo algo errado aqui?

EditarVale a pena mencionar que o log de erros da Iedebug em uma máquina que tenta acessar o controle da intranet exibe uma longa exceção. O mais digno de nota de ser:

System.Net.WebPermission
The first permission that failed was:
<IPermission class="System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1">
Foi útil?

Solução

Há muito tempo, li em algum lugar que, para .Net UserControls, as evidências da URL não funcionam. Somente o trabalho de evidência do local e da zona.

caspol -machine -quiet -addgroup Trusted_Zone -site mysite.com FullTrust -name mysite -description "Code group granting trust to code from mysite.com"

Você pode fazer isso para cada zona.

Ao usar o IE8, verifique se o mysite.com é adicionado à lista de sites confiáveis 3. Não tenho certeza se o modo protegido deve estar desligado.

Quando você está em um sistema de 64 bits, existem dois Caspol, com permissões separadas:

  • C: Windows Microsoft.net Framework V2.0.50727 Caspol.exe
  • C: Windows Microsoft.net Framework64 V2.0.50727 Caspol.exe

Muito tempo definindo permissões no caspol de 32 bits e depois batendo a cabeça contra a parede porque não funcionaria. Acontece que usei o IE8 de 64 bits porque isso fez um iedebug.log. Melhor definir as permissões nas duas versões.

Outras dicas

Como se vê, isso não era um problema de confiança. Uma DLL necessária para que o aplicativo seja executado não estava no diretório da BIN do aplicativo. Consequentemente, o aplicativo estava tentando extrair a DLL necessária do GAC, o que não estava correto. Implantando com a DLL necessária corrigiu o problema.

Como nota lateral - este é um mecanismo de entrega muito antiquado para o software e espero que não esteja mais sendo usado. A depuração desses tipos de erros é muito mais difícil do que deveria. Recomenda a escolha de um melhor mecanismo de entrega do que os controles incorporados.

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