System.DllNotFoundException

Supportfrågor för Switch King i Linux-miljö
Forum rules
För att kunna hjälpa dig med supportfrågor behöver vi så mycket information som möjligt.
Innan du skapar en ny tråd, läs gärna:
viewtopic.php?f=10&t=20
Post Reply
nilzen
2 stars
2 stars
Posts: 49
Joined: Sat 26 Nov 2011, 19:27

System.DllNotFoundException

Post by nilzen » Mon 07 May 2012, 18:20

Hej,

Efter att det löste sig med returnWhenUp -> returnwhenup casingen i querystringen för sunstate så lyckades jag ändå inte få in värdet som en datakälla och efter en stunds letande så hittade jag detta i loggen på servern (dum som jag var letade jag i klientens loggar först utan att se ngt)

Code: Select all

{BusinessAccessDataCollection - Collection} --<Error> -- 2012-05-07 19:07:14 -- Failed to collect data for data source with id 3 and name Solens läge. Exception:
System.DllNotFoundException

Level 1) advapi32.dll

StackTrace for Level 1:
  at (wrapper managed-to-native) SwitchKing.Server.BusinessAccess.Helpers.Impersonator:RevertToSelf ()
  at SwitchKing.Server.BusinessAccess.Helpers.Impersonator.ImpersonateValidUser (System.String userName, System.String domain, System.String password) [0x00000] in <filename unknown>:0
  at SwitchKing.Server.BusinessAccess.Helpers.Impersonator..ctor (System.String userName, System.String domainName, System.String password) [0x00000] in <filename unknown>:0
  at SwitchKing.Server.BusinessAccess.DataCollection.Collectors.File.SimpleFlatFileCollector.ReadFromSource () [0x00000] in <filename unknown>:0
  at SwitchKing.Server.BusinessAccess.DataCollection.Collectors.File.SimpleFlatFileCollector.Collect () [0x00000] in <filename unknown>:0
  at SwitchKing.Server.BusinessAccess.DataCollection.Engines.DataCollectorEngine.Collect (SwitchKing.Common.Entities.DataSource src, SwitchKing.Server.BusinessAccess.DataCollection.DataSourceEntity& srcAccess, SwitchKing.Server.BusinessAccess.DataCollection.DataSourceValueEntity& valueAccess, SwitchKing.Server.BusinessAccess.EntityLogEntryEntity& logAccess) [0x00000] in <filename unknown>:0
Men det bör väl gå att att lösa med "preprocessor directives"?

Code: Select all

#if __MonoCS__
 //mono-kod
#else 
 //windowsspecifik pinvoke-kod
#endif

Martin
Administrator
Administrator
Posts: 2655
Joined: Tue 09 Nov 2010, 20:25

Re: System.DllNotFoundException

Post by Martin » Mon 07 May 2012, 19:08

Kanske går att lösa med preprocessor directives, men frågan är vad som är motsvarande Mono-kod...
Det är ju trots allt någon form av impersonation som krävs (eftersom det är valt i klienten).
Martin | Switch King

nilzen
2 stars
2 stars
Posts: 49
Joined: Sat 26 Nov 2011, 19:27

Re: System.DllNotFoundException

Post by nilzen » Tue 08 May 2012, 14:01

Vet inte om jag tänkt fel när jag angett användarnamn och lösen där, men för basic authentication behövs väl inte riktig impersonation? Det går väl att sätta en request-header som löser det?

Testade att lägga på användarnamn och lösenord i uri:n men det gick inte.

Code: Select all

http://usr:pass@ip:8800/extendedservices/calculations/sunstate?returnwhenup=up&returnwhendown=down

Code: Select all

Level 1) parameters do not match signature

StackTrace for Level 1:
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
  at SwitchKing.Common.Reflection.UriTemplateInvoker.InvokeRESTCallByUriTemplate (System.String originalUrl, System.Type contractType, System.Object contractInstance) [0x00000] in <filename unknown>:0
  at SwitchKing.Server.RESTServices.RESTCollectorOverrider.GetDataFromSource (System.Uri address) [0x00000] in <filename unknown>:0
  at SwitchKing.Server.BusinessAccess.DataCollection.Collectors.AbstractCollector.CollectByCollectorOverrider (System.Uri address) [0x00000] in <filename unknown>:0
  at SwitchKing.Server.BusinessAccess.DataCollection.Collectors.AbstractCollector.GetDataFromSource_Http (System.Uri address, SwitchKing.Server.BusinessAccess.DataCollection.CollectorStatus& status, System.String& data) [0x00000] in <filename unknown>:0
  at SwitchKing.Server.BusinessAccess.DataCollection.Collectors.AbstractCollector.GetDataFromSource (System.Uri address, SwitchKing.Server.BusinessAccess.DataCollection.CollectorStatus& status, System.Exception& ex) [0x00000] in <filename unknown>:0
{BusinessAccessDataCollection - Collection} --<Error> -- 2012-05-08 14:58:34 -- Failed to collect data from Uri http://usr:pass@ip:8800/extendedservices/calculations/sunstate?returnwhenup=up&returnwhendown=down. Exception:
System.Reflection.TargetParameterCountException

Martin
Administrator
Administrator
Posts: 2655
Joined: Tue 09 Nov 2010, 20:25

Re: System.DllNotFoundException

Post by Martin » Tue 08 May 2012, 14:35

Stämmer - impersonation ska inte behövas när det gäller Http och Basic.

Om du dessutom använder localhost så ska servern se att du försöker gå mot din egen server och ska alltså inte göra en roundtrip ut, för att sedan vända tillbaka. Den ska gå direkt internt istället.
Dock blir "känsligheten" högre när servern försöker lista ut vilken metod det egentligen är du försöker accessa, och kräver att alla parametrar är med.

Hela anropet ser ut så här, om jag har rätt för mig:

Code: Select all

http://servernamn:8800/extendedservices/calculations/sunstate?date={date}&returnwhenup={returnWhenUp}&returnwhendown={returnWhenDown}&offset={offset}
Felmeddelandet säger att den inte hittar en metod med de parametrar som du angett i adressen. Prova gärna att kasta med "date=" (alltså "tomt" datum) och "offset=0".
Det ska göra att servern tar dagens datum med 0 minuters offset = "verklig" soluppgång.
Martin | Switch King

nilzen
2 stars
2 stars
Posts: 49
Joined: Sat 26 Nov 2011, 19:27

Re: System.DllNotFoundException

Post by nilzen » Tue 08 May 2012, 19:08

Testat att köra mot ip-nummer och localhost, samma felmeddelande tyvärr:

Code: Select all

{BusinessAccessDataCollection - Collection} --<Error> -- 2012-05-08 20:06:11 -- Failed to collect data from Uri http://localhost:8800/extendedservices/calculations/sunstate?returnwhenup=up&returnwhendown=down&offset=0&date=. Exception:
System.Reflection.TargetInvocationException

Level 1) Exception has been thrown by the target of an invocation.
Level 2) Object reference not set to an instance of an object

StackTrace for Level 1:
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
  at SwitchKing.Common.Reflection.UriTemplateInvoker.InvokeRESTCallByUriTemplate (System.String originalUrl, System.Type contractType, System.Object contractInstance) [0x00000] in <filename unknown>:0
  at SwitchKing.Server.RESTServices.RESTCollectorOverrider.GetDataFromSource (System.Uri address) [0x00000] in <filename unknown>:0
  at SwitchKing.Server.BusinessAccess.DataCollection.Collectors.AbstractCollector.CollectByCollectorOverrider (System.Uri address) [0x00000] in <filename unknown>:0
  at SwitchKing.Server.BusinessAccess.DataCollection.Collectors.AbstractCollector.GetDataFromSource_Http (System.Uri address, SwitchKing.Server.BusinessAccess.DataCollection.CollectorStatus& status, System.String& data) [0x00000] in <filename unknown>:0
  at SwitchKing.Server.BusinessAccess.DataCollection.Collectors.AbstractCollector.GetDataFromSource (System.Uri address, SwitchKing.Server.BusinessAccess.DataCollection.CollectorStatus& status, System.Exception& ex) [0x00000] in <filename unknown>:0

Martin
Administrator
Administrator
Posts: 2655
Joined: Tue 09 Nov 2010, 20:25

Re: System.DllNotFoundException

Post by Martin » Tue 08 May 2012, 19:17

Har lagt upp detta som en bugg för test:
http://bugnet.switchking.se/Issues/Issu ... spx?id=406
Martin | Switch King

Post Reply

Who is online

Users browsing this forum: No registered users and 8 guests