Domanda

Ho impostato un controllo activex per l'esecuzione su una pagina web. Il server è in grado di fornire questa pagina Web a se stesso, ma altri computer su Intranet e Internet non sono in grado di accedervi.

Le impostazioni di Caspol sono così:

Gruppi di codici:

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

L'applicazione a cui sto tentando di accedere è il gruppo 1.6. Sto facendo qualcosa di sbagliato qui?

[Edit] Vale la pena ricordare che il registro errori IEDebug su una macchina che tenta di accedere al controllo dall'Intranet presenta una lunga eccezione. Il più degno di nota è:

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">
È stato utile?

Soluzione

Molto tempo fa ho letto da qualche parte che per i controlli utente .Net, le prove Url non funzionano. Funzionano solo prove di siti e zone.

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

Puoi farlo per ogni zona.

Quando si utilizza IE8, assicurarsi che mysite.com sia aggiunto all'elenco dei siti attendibili 3 . Non sono sicuro che la modalità protetta debba essere disattivata.

Quando sei su un sistema a 64 bit, ci sono due caspol, con permessi separati:

  • C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ caspol.exe
  • C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ caspol.exe

Ho molto tempo a impostare i permessi sul caspol a 32 bit, e poi ho sbattuto la testa contro il muro perché non avrebbe funzionato. Risulta che ho usato IE8 a 64 bit perché questo ha reso un IEDebug.log. Meglio impostare le autorizzazioni su entrambe le versioni.

Altri suggerimenti

A quanto pare, questo non era affatto un problema di fiducia. Una DLL richiesta per l'esecuzione dell'applicazione non si trovava nella directory bin dell'applicazione. Di conseguenza, l'applicazione stava tentando di estrarre la DLL richiesta dal GAC, che non era corretta. La distribuzione con la DLL richiesta ha risolto il problema.

Come nota a margine: questo è un meccanismo di consegna molto antiquato per il software e si spera che non venga più utilizzato. Il debug di questi tipi di errori è molto più difficile di quanto dovrebbe essere. Consiglia di scegliere un meccanismo di consegna migliore rispetto ai controlli integrati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top