[ASP.NET/C#] XmlSerializer - kan source file niet vinden??

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Topicstarter
Ik heb een doodeenvoudige class, nergens van afgeleid, met alleen een paar string-properties erin en meer niet. En uiteraard een constructor zonder properties. Vervolgens wil ik zo'n ding, ApplicationItem heet-ie, gaan serializen:
C#:
1
XmlSerializer serializer = new XmlSerializer(typeof(ApplicationItem));

En op die regel krijg ik me toch een vage error om de oren! :)
code:
1
2
3
Unable to generate a temporary class (result=1).
error CS2001: Source file 'C:\WINDOWS\TEMP\ow37jm5w.0.cs' could not be found
error CS2008: No inputs specified

Wat wordt daar nou feitelijk mee bedoeld? Het is gewoon een applicatie die ik rechtstreeks op een webserver debug en develop. Allemaal helemaal standaard, geen exotische meuk, netjes VS2005 en IIS 6.0 met FPSE2002... Niks aan allemaal. Applicatie heeft niks speciaals, is net gister aangemaakt en heb ik alleen wat classjes in gezet en een ASPX aan toegevoegd...

Ohja, XmlSerializer(typeof(string)) werkt prima, maar XmlSerializer(typeof(string[])) weer niet (zelfde error)... Misschien is het een waardevolle hint, misschien toeval. Ik heb echt geen flauw benul wat ik nou weer heb :)

Iemand please? Eeuwige roem zal u tegemoed komen :)

日本!🎌


  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21:15
Ik doe een klein gokje, aangezien je hebt hebt over devven op een webserver. Heeft de ASPNET user wel de juiste rechten om te mogen lezen/schrijven naar c:\windows\temp ?

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Topicstarter
Nee die user heeft daar geen rechten. Maar het is ook gewoon een standaardconfiguratie. Ik heb nog nooit ergens in een systeemdir handmatig rechten hoeven instellen om iets (voor .NET) triviaals aan de praat te krijgen. Op mijn server niet, maar op geen enkele server eigenlijk.

Ik heb de rechten op die dir nu aangepast en nu doet ie het wel, maar ik betwijfel of dat echt de fix is, en geen workaround voor een probleem dat wat dieper zit...

[ Voor 3% gewijzigd door _Thanatos_ op 10-04-2006 21:14 ]

日本!🎌


Verwijderd

Ik doe nog een klein gokje erbij. Ik weet verder veel te weinig van ASP.NET, maar kun je niet ergens in de config aangeven dat de persoonlijk temp dir van de ASPNET user gebruikt moet worden?

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Topicstarter
Niet dat ik weet, maar ik vind niet dat je dat als coder moet instellen... het moet iets zijn dat standaard gewoon goed moet zijn. En anders moet je het als sysadmin op de server kunnen instellen, maar waar? Dat vermeldt de geschiedenis niet.

日本!🎌


Verwijderd

Op google zijn een berg van dezelfde topics te vinden, maar daar wordt je inderdaad ook niet veel wijzer van. Schijnbaar speelt het al sinds .NET1.1 en de enige oplossing die ik tot nu toe in een stuk of 5 google resultaten heb gezien, is om de ASP user domweg schrijfrechten te geven op de windows temp directory.

Niet echt elegant, maarja als het werkt... :|


Update: volgens deze post in een MS nieuwsgroup kun je in je web.config gewoon een tempDirectory attribuut aanpassen, dus je zou hiervoor een temp dir kunnen gebruiken waarop de ASP user wel schrijfrechten heeft. Ik heb momenteel geen IIS ter beschikking om dit uit te proberen, maar het klinkt alsof het zou kunnen werken :)

Ik weet niet of je op een remote server ontwikkeld, maar dit zou je probleem kunnen verklaren. Ik weet het niet zeker, maar ik denk dat bij een 'normale' install voor development (VS en IIS op dezelfde pc) de ASP gebruiker gewoon meer rechten heeft. Bij deployment wordt er daarnaast denk ik steeds meer gebruik gemaakt van Windows security waarbij je een user kan impersonaten en afaik hebben domein users wel standaard schrijfrechten op de Windows temp dir van een server.

[ Voor 58% gewijzigd door Verwijderd op 13-04-2006 23:49 ]

Pagina: 1