Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

C# <Module> threw an exception

Pagina: 1
Acties:

  • tha_crazy
  • Registratie: Maart 2007
  • Laatst online: 21:52
Betreft het draaien vanuit debug mode in visual studio 2010.

Ben al een paar dagen aan het debuggen en kom er gewoonweg niet uit.
We hebben een WPF applicatie welke sinds een paar dagen een error gooit.

Namelijk de error
The type initializer for '<Module>' threw an exception.

Daar kan ik natuurlijk weinig mee, de innerexception geeft me al wat meer informatie
The C++ module failed to load during appdomain initialization.

Dus daarop maar even voor de zekerheid de C++ 2010 redistributable package (x86 & x64) erop geknalt (runtime stond er al op), geen resultaat.

Verder zoekend komt ik het volgende tegen:
Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Oke, daarop kom ik alleen maar uit op full trust e.d.
Dus de officiele site welke als eerste de error gooide gecontroleerd, staat op full trust in IIS.

Dan maar weer verder kijken.
De aanroep
C#:
1
var printDialog = new PrintDialog(); 


gaat nog goed
C#:
1
if (printDialog.ShowDialog().Value)


Daar gaat die mis, daarvoor gebeurd niet veel bijzonders.
Als ik dan een blik werp op de PrintDialog variabele en kijk hoe alles er daar uitziet, zie ik bijvoorbeeld:
printDialog.PrintQueue' threw an exception of type 'System.TypeInitializationException

En dat natuurlijk weer met dezelfde module error met deze keer in zijn innerexception
{<CrtImplementationDetails>.ModuleLoadException: The C++ module failed to load during appdomain initialization.
---> System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Oftewel, ik kom steeds bij hetzelfde uit.

Wat zie ik over het hoofd, iemand die hier wat helderheid over kan geven?

[ Voor 1% gewijzigd door tha_crazy op 10-04-2013 22:28 . Reden: opmaak ]


  • Merethil
  • Registratie: December 2008
  • Laatst online: 00:26
Weet niet of het hieraan ligt maar printDialog.ShowDialog().Value doet het bij mij niet. printDialog.ShowDiaog() zou al een Boolean value moeten returnen voor zover ik zag.
Verder denk ik dat een stukje relevante code (tussen code-tags) het beter zou doen dan deze summiere uiteg met wat errors (en dit bedoel ik niet verkeerd, maar anders maakt het zo'n shabby indruk terwijl mensen je best willen helpen als ze begrijpen wat er waar misgaat).

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

Hoe start je die printDialog? Via een 'klik' van de gebruiker? In silverlight moet je dat verplicht via een 'klik' van de gebruiker laten doen. Heb geen idee of dit ook geld voor XBAP (ik gok dat je dat hebt omdat je opeens van WPF naar IIS gaat).

Skill is when luck becomes a habit.


Verwijderd

Volgens mij geeft Printing Dialog onder C++ .NET een DialogResult terug?

Dus je zou kunnen doen:
C#:
1
2
3
4
if(dlgPrint.ShowDialog() == DialogResult.OK)
{
    // doe je ding
}


edit:
Ik zie dat het C# moet zijn :F

[ Voor 16% gewijzigd door Verwijderd op 10-04-2013 20:08 ]


  • Sircuri
  • Registratie: Oktober 2001
  • Niet online

Sircuri

Volledig Appelig

Heb je al gegoogled? Ik zie op veel fora dat er iets mis is met je security zones in je .Net config. Daar al naar gekeken?

MSDN: Request for the permission of type 'System.Security.Permissions.SecurityPermission'

Wellicht anders wat code delen dat anderen ook kunnen meekijken.

[ Voor 9% gewijzigd door Sircuri op 10-04-2013 21:19 ]

Signature van nature


  • tha_crazy
  • Registratie: Maart 2007
  • Laatst online: 21:52
Even algemene reactie.
Google heb ik al helemaal afgestruind, doe ik namelijk eerst.
Helaas zonder resultaat, echter de link die Siricuri aangeeft was ik nog niet tegengekomen, en is dus nog wel iets om te testen.
Maar hij gaat ook lokaal in debug mode onderuit.

Ik kan in ieder geval morgen wel even de oplossing van Mostrow proberen, vond zelf de .Value ook al raar maar dat leek mij in eerste instantie niet de reden waarom het mis ging.

Verder wordt die vanuit de XAML aangeroepen via een click event, en gaat die zo door naar de C# Code om zijn printgegevens op te halen en af te drukken.

De code is als volgt:
code:
1
<Hyperlink Click="PrintClick" >print</Hyperlink>


C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void PrintClick(object sender, RoutedEventArgs e)
        {

            var printDialog = new PrintDialog();

            try
            {
                if (printDialog.ShowDialog().Value)
                {
                    //wat zooi
                 }
            }
            catch(TypeInitializationException ex)
            {
                string a = ex.ToString();
            }


Bij de //WatZooi komt hij dus al niet aan maar gaat direct naar de catch.

[ Voor 3% gewijzigd door tha_crazy op 10-04-2013 22:37 ]


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
Je hebt een WPF-applicatie draaien in IIS. Come again?

Wat is je scenario nou precies?
- Je gebruikt WPF-componenten serverside?
- Je hebt een Browser-based application (XBAP) die je host in IIS?

Het eerste scenario lijkt me onwaarschijnlijk: ShowDialog() zou worden uitgevoerd op de server, waardoor de eindgebruiker het niet ziet.

Het tweede scenario: de XBAP draait in de webbrowser van de bezoeker. Je WPF-applicatie draait niet op de server, maar op de computer van je bezoeker. Om veiligheidsredenen draait je code daar in een sandbox, het is mogelijk dat je XBAP dan niet voldoende rechten heeft. Zie ook: MSDN: WPF Partial Trust Security

[ Voor 8% gewijzigd door Alex) op 10-04-2013 23:18 ]

We are shaping the future


  • tha_crazy
  • Registratie: Maart 2007
  • Laatst online: 21:52
Betreft inderdaad een XBAP die gebruikt maakt van een service op de webserver.

En na het her en der doorlezen wordt ik nog niet veel wijzer.
Want waarom zou die het dan lokaal niet doen als die daar juist in de full trust zit.
Met andere websites hebben we deze problemen overigens niet, maar deze zijn dan ook ASP/C# gemaakt.

  • alwinuzz
  • Registratie: April 2008
  • Laatst online: 22-11 19:13
Als je een XBAP in je browser draait, maakt het niet uit hoe de website is ingesteld in IIS. Het gaat om de permissies die de XBAP in je browser heeft. Misschien heeft die zelfs via localhost niet automatisch FullTrust.
Dit kan je checken en veranderen met caspol.exe
Als er meerdere versie van caspol zijn moet je die hebben voor je .net versie.
En er is nog verschil tussen x86 en x64...

Volgens mij kan je ook de debugger attachen aan managed .net code van IE om zo je XBAP te debuggen.

En omdat er een module niet wil laden, kan je ook kijken naar IEDebug.log

Succes! XBAP in je browser is een mijnenveld :9

[ Voor 4% gewijzigd door alwinuzz op 11-04-2013 20:38 ]

Pagina: 1