Francesco Geri

Il blog di Francesco Geri
posts - 56, comments - 57, trackbacks - 2

My Links

News



Anch'io metto nel mio blog cose che scrivo così, tanto per fare, tanto per condividere miei appunti, senza prendermi la briga di garantirne l'infallibilità, né l'assoluta correttezza, senza pretese e con grande umilté.

Quanti mi hanno visto dal 25/10/2007:
...dettagli

Che libro leggo in questo periodo?*

L'Affittacamere - Valerio Varesi
* L'immagine è presa da IBS (http://www.ibs.it), spero non me ne vogliano...

Archives

Post Categories

Altre

Blogs

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 17.33 | Filed Under [ ASP.NET 2.0 Tips VS2005 .Net ]

Feedback

Gravatar

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

è capitato anche a me anche se in un ambito diverso. Io per un mio capriccio non ho dato Full Trust a tutta la mia intranet, ma uso una directory nella quale metto tutti gli assembly e do il Full Trust solo a quella.
03/04/2007 9.02 | Igor Damiani
Gravatar

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

Mi pare che la tua soluzione sia migliore... :)
PS: complimenti la 500!! Che macchina mitica!
03/04/2007 9.09 | Franx

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 5 and 1 and type the answer here:

Powered by: