Profil
|
Wyszukaj
|
|
Webservice - pierwsze połączenie | |
pierzcha |
2017-07-14 14:41:45 Temat postu: Webservice - pierwsze połączenie
Cytuj
|
Użytkownik
Postów: 5
Punkty: 9
|
Witam,
na nowym kompie, na którym postawiłem webservice mam drobne problemy z połączeniem. Przy pierwszym połączniu wywala błąd: Kod: System.Exception: System.TypeInitializationException: Inicjator typów zgłosił wyjątek dla typu 'Soneta.Business.UI.PageInfoCache'. ---> System.UnauthorizedAccessException: Odmowa dostępu do ścieżki „Soneta”. w System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) w System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost) w System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost) w Soneta.Business.UI.PageInfoCache..ctor() w Soneta.Business.UI.PageInfoCache..cctor() --- Koniec śladu stosu wyjątków wewnętrznych --- w Soneta.Business.App.Role.GetAssembliesIdents() w Soneta.Business.App.Role.initIdents(Dictionary`2 modules, Dictionary`2 types) w Soneta.Business.App.Role.initTypes() w Soneta.Business.App.Role.GetPermission(Type dataType) w Soneta.Business.App.Role.get_Item(Type dataType) w Soneta.Business.Table.get_AccessRightInternal() w Soneta.Business.Table.get_AccessRight() w Soneta.Business.Row.InitAccessRight() w Soneta.Business.Row.get_AccessRight() w Soneta.Business.Row.GetRecord() w Soneta.Business.App.Login.loadRoles(Session session) w Soneta.Business.App.Login.checkRole(Session session) w Soneta.Business.App.Database.LoginHelper.Login(LoginArgs args) w Soneta.Business.App.Database.LoginHelper.Login(LoginParameters parameters) w Soneta.Business.App.Database.Login(Boolean winAuth, String user, String password)... przy kolejnym połączniu już błędu nie ma. Po kilkunastu minutach jak nie jest webservice wykorzystywany to znów się błąd pojawia (tak samo jak zrestartuje serwer). Co może być tego przyczyną? |
Offline
![]() ![]() ![]() |
|
Wojtek |
Cytuj
|
Global Admin
Magnat
|
Witam,
Prawdopodobnie chodzi o to, że mechanizm optymalizacji IIS wyładowuje nieużywane DLL`ki Sonety, co powoduje błędy dostępu to metod API enova. Rozwiązaniem jest ładowanie DLL`ek za każdym startem sesji webowej użytkownika: Kod: protected void Session_Start(object sender, EventArgs e) { ... loadModules(); ... } private void loadModules() { // ładowanie wykorzystywanych bibliotek loadAssembly("Soneta.Types"); loadAssembly("Soneta.Business"); loadAssembly("Soneta.Core"); loadAssembly("Soneta.CRM"); loadAssembly("Soneta.CzlonkowieSzkolenia"); loadAssembly("Soneta.Deklaracje"); loadAssembly("Soneta.Handel"); loadAssembly("Soneta.KadryPlace"); loadAssembly("Soneta.Kasa"); loadAssembly("Soneta.Ksiega"); loadAssembly("Soneta.Zadania"); } // update: Kod: void loadAssembly(string name) { try { string assemblyPath = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath + "/bin"); if (name.IndexOf('/') < 0 && name.IndexOf('\\') < 0) { name += ".dll"; name = Path.Combine(assemblyPath, name); } Assembly ass = Assembly.LoadFrom(name); lock (assemblies) assemblies[ass.GetName().Name] = ass; } catch { } } ___________________ Ostatnio zmodyfikowany przez Wojtek 2017-10-26 17:10:36 |
Offline
![]() ![]() ![]() |
|
Klyn |
Cytuj
|
Użytkownik
Postów: 2
Punkty: 2
|
Witam,
Jestem początkującym programistą enova i szukam informacji jak stworzyć webservice. Mam dostęp jako partner do portalu, ale jakoś nie mogę tam odszukać interesującej mnie informacji. Czy mógłby ktoś wskazać jakiś przykład tak na początek. ___________________ Ostatnio zmodyfikowany przez Klyn 2017-11-28 14:18:40 |
Offline
![]() ![]() ![]() |
|
Wojtek |
Cytuj
|
Global Admin
Magnat
|
Witam,
Proponuję załatwić sobie jeszcze dostęp do http://dok.enova365.pl lub zobaczyć przykłady na GitHubie https://github.com/soneta/Examples jest tam przykład webservice. |
Offline
![]() ![]() ![]() |
|
Klyn |
Cytuj
|
Użytkownik
Postów: 2
Punkty: 2
|
Dzięki już widzę.
|
Offline
![]() ![]() ![]() |
|