Miałem problemy z korzystaniem z Settings.settings. Na przykład, jeśli trzeba wprowadzić zmiany w czasie wykonywania, mogą wystąpić problemy z zastępowaniem ustawień przez te, które były początkowo przechowywane w pliku settings.settings, w przeciwieństwie do tego, co pokazano, aby przechowywać je w aplikacji/Internecie. .config. W związku z tym wszystkie moje ustawienia proxy usług sieciowych są "statyczne" we właściwościach i wyciągam je ręcznie z aplikacji/web.config za pomocą metody pomocniczej i programowo je ustawia. To omija wszelkie problemy.
Przykład problemu, który mieliśmy: Skierowałem swoją maszynę programistyczną do usługi internetowej na serwerze testowym, aby przetestować kod, który pochłonął usługę sieciową. Kiedy kod został przeniesiony na nasz serwer testowy, nie pojawiły się żadne problemy - jako że serwer testowy był ciągle wskazywany na tę samą usługę internetową na tym samym serwerze testowym. Jednak po przeniesieniu aplikacji na serwer produkcyjny i ponownym skonfigurowaniu pliku web.config na serwer produkcyjny zaczęliśmy uzyskiwać pomniejsze wyniki. Trzeba było sporo wysiłku, aby stwierdzić, że mimo że zmieniliśmy aplikację, aby wskazać serwer produkcyjny na wdrożenie usługi internetowej, wciąż łączyło się z usługą sieciową na serwerze testowym. Dopiero zmieniliśmy settings.settings na moim komputerze programistycznym i zrekompilowałem aplikację, która działała. Ponadto zauważyliśmy, że gdyby wystąpiły problemy z DNS związane z produkcyjną usługą sieciową, zamiast niepowodzenia, wróciły do pierwotnych ustawień określonych w settings.settings od momentu utworzenia proxy usługi sieciowej w naszej aplikacji - generator proxy faktycznie je koduje. W rezultacie, gdy wystąpiły przerwy w sieci, zamiast łatwo zdiagnozować awarie połączeń, po prostu wróciły do serwera testowego i zaczęły pojawiać się niezrozumiałe problemy z danymi. Nie jestem pewien, czy był to znany problem, czy został naprawiony, ale z pewnością jest to coś, o czym powinieneś wiedzieć.
W związku z tym, od zawsze ustawiałem właściwości usługi na statyczne i użyłem metody pomocniczej do odczytania poprawnych ustawień z web.config bezpośrednio i napisałem je programowo, ponieważ wydaje się to obchodzić problem.
Może się wydawać, że nie mam z tobą nic wspólnego, ponieważ korzystałem z usług sieciowych, które nie mają nic wspólnego z usługami systemu Windows, jednak w każdym środowisku, w którym musisz mieć możliwość zmiany ustawień na stronie Środowisko wykonawcze bez konieczności ponownej kompilacji może zostać naruszone przez ten problem, więc powinieneś mieć świadomość, że jeśli działasz w środowisku Dev/Test/Production lub w jakimkolwiek środowisku, w którym potrzebujesz aplikacji do rekonfiguracji w czasie wykonywania (tzn. bez konieczności rekompilacja), że możesz uzyskać nieprzewidywalne wyniki podczas używania settings.settings. Strzec się.
Dziękuję za bardzo szczegółową odpowiedź. Chciałbym zagłosować, ale nie mam jeszcze wystarczającej liczby punktów reputacji. Dziękuję za poświęcenie czasu na odpowiedź. – AndHeCodedIt
Muszę przyznać, że w ogóle nie miałem takich problemów i korzystamy z wielu usług Windows z ustawieniami aplikacji odczytanymi z pliku app.config - w tym z adresów URL usług sieciowych. Czy sądzisz, że ten problem dotyczy aplikacji Windows Services v Win Forms lub zwykłego błędu/problemu app.config? – barrylloyd
@barrylloyd - Nie zrobiłem wiele badań na temat, które obszary ramy, na które to wpłynęło, były szczere, ponieważ były aplikacjami o znaczeniu krytycznym [tj. popraw to i idź dalej]. Z przeprowadzonego przeze mnie badania wynikało, że problem mógł dotyczyć interakcji proxy usługi sieciowej z settings.settings, a nie poprawnego połączenia z web.config w celu sprawdzenia jego ustawień. Możliwe, że wpływa tylko na ten obszar ram, może wpływać na inne obszary, nie jestem pewien. – BenAlabaster