Francesco Geri

Il blog di Francesco Geri
posts - 94, comments - 165, trackbacks - 2

Se la build di un progetto funziona in debug e fallisce in Release...

Oggi mi è capitato un problemino con un progetto di un webservice.

Il progetto faceva riferimento ad una dll che stava su un percorso di rete condiviso, all'interno della mia intranet.
Capitava che quando facevo la Build del progetto in modalità Debug tutto funzionava bene, mentre in Release falliva.

L'errore era:

sgen.exe exit with code 1

e più in dettaglio:

D:\Programmi\Microsoft Visual Studio 8\SDK\v2.0\bin\sgen.exe /assembly:...
Error: Could not load file or assembly '\\serverDiRete\myDir\myDLL.dll' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)
- Required permissions cannot be acquired.

 

Ho cercato un po' (googlato per gli amanti dei neologismi) e poi ho trovato che il problema poteva essere aggirato/risolto in 2 modi

  1. Si può disabilitare la chiamata ad sgen andando sulle proprietà del progetto, sezione compilazione, poi cliccare su "Advanced Compile Options" ed impostare "Generate Serialization Assembies" su Off.
    Questo metodo, però, aggira il problema piuttosto che risolverlo. Infatti disabilita qualcosa che magari potrebbe invece interessarci (se vuoi saperne di più su sgen clicca qui)
  2. Il problema è che sgen, a causa di problemi di permessi, non riesce ad accedere ad una dll che si trova in una directory condivisa, su un path di rete. Quindi quello che possiamo fare è di dare questi permessi.
    Per cui si può: 
    Andare su Start->Impostazioni->Pannello di Controllo->Strumenti di amministrazione->Microsoft .NET Framework 2.0 Configuration; poi:
    Selezionare "Runtime Security Policies";
    Cliccare su "Adjust Zone Security" nel pannello di destra;
    Selezionare "Make Changes to this computer" (o "current user only" se preferite) e premere Next;
    Selezionare Local Intranet (visto che il mio problema riguarda l'accesso ad una directory di rete, che sta su una macchina nella mia intranet) ed impostare Full Trust!
    Premere Next e poi Finish!

Print | posted on lunedì 2 aprile 2007 20:33 | Filed Under [ ASP.NET 2.0 Tips VS2005 .Net ]

Powered by:
Powered By Subtext Powered By ASP.NET