2012-08-10 8 views
6

Mam zdefiniowane moje configSource szukać plików konfiguracyjnych w podkatalogu o nazwie config, jak następuje:Dlaczego Web.config szuka źródła configSource w folderze projektu zamiast w bin?

<connectionStrings configSource="config\ConnectionStrings.config" /> 

Mam plik konfiguracyjny zdefiniowany jako połączonego pliku, więc gdy budowa się dzieje, to zostaje skopiowany do mój folder bin \ config jest w porządku.

Jednak moje projekty Web App patrzą na rozwoju projektu folderu konfiguracyjnego zamiast folderze bin \ config wdrażania. Potwierdziłem to za pomocą Monitora procesu.

Więc mam kilka pytań:

  1. Dlaczego szukają tam zamiast bin \ config - nie tęsknię ścieżkę względną ustawienie gdzieś?
  2. Połączone pliki nie są kopiowane, ale tylko do pojemnika. Rozumiem, że to właściwe zachowanie. Czy to prawidłowe założenie, czy też powinno zostać skopiowane do obu lokalizacji? Jeśli tak, jakie jest ustawienie, aby to umożliwić?
  3. Czy dobrą praktyką jest używanie podfolderów do powiązanych plików lub czy powinienem pozostawić je w katalogu głównym projektu?

Wielkie dzięki!

UPDATE: Używam metody opisanej tutaj: http://consultingblogs.emc.com/jamesdawson/archive/2008/06/03/using-linked-files-with-web-application-projects.aspx aby upewnić się, że pliki konfiguracyjne są kopiowane i robi trochę eksperymentowania I odpowiedział na pytanie nr 2. Nie jest to domyślne zachowanie w Visual Studio, ale to obejście zapewnia, że ​​pliki są kopiowane do obu lokalizacji.

Odpowiedz

1

Wierzę, że to może ci trochę pomóc. How to use multiple Web.config files

Zasadniczo możesz mieć dowolną liczbę plików konfiguracyjnych, pod warunkiem, że znajdują się w oddzielnym folderze aplikacji internetowej. Trochę zagmatwany przez część twojego komentarza, w którym wspominasz "inny projekt internetowy", czy mógłbyś być bardziej konkretny w tym dziale? Ponadto znalazłem o wiele więcej szczegółów na ten temat na msdn, sugeruję, aby to sprawdzić.

Szczęśliwe kodowanie!

+0

Cóż, nie sądzę, że używam wyrażenia "inny projekt internetowy", ale mam wiele projektów docelowych (3 projekty internetowe i jedna aplikacja konsolowa), które korzystają z połączonego pliku ConnectionStrings.config. Pytanie nie dotyczy liczby plików konfiguracyjnych. Nie podoba mi się to, że projekty internetowe szukają w mojej ścieżce rozwoju w porównaniu ze ścieżką rozmieszczenia plików konfiguracyjnych. Aplikacja Console tego nie robi. Moim oczekiwaniem jest, że plik web.config po podłączeniu będzie szukał połączonych plików w ścieżce wdrażania, tak samo jak plik app.config w mojej aplikacji konsolowej. Przepraszamy za brak przejrzystości! – Shane

+0

Cześć, dobrze, jeśli dobrze zrozumiałem twoje pytanie, jedynym problemem jest to, że web.config nie odczytuje połączonego pliku z oczekiwanej lokalizacji. Z tego, co mogłem wykopać, wydaje się, że należy podać dokładną lokalizację pliku, aby web.config go odczytał. Tutaj jest mój [link] (źródło informacji: http://stackoverflow.com/questions/2411184/can-a-web-config-read-from-an-external-xml-file) –

+0

Cześć, dobrze, jeśli ja poprawnie zrozumiał twoje pytanie, jedynym problemem jest to, że web.config nie odczytuje połączonego pliku z oczekiwanej lokalizacji. Z tego, co mogłem wykopać, wydaje się, że należy podać dokładną lokalizację pliku, aby uzyskać dostęp do sieci.config, aby go przeczytać. Oto moje [źródło informacji] [1] [1]: http: //stackoverflow.com/questions/2411184/can-a-web-config-read-from-an-external-xml-file W moich projektach I właściwie wykorzystuj to podejście, miejmy nadzieję, że może to rozwiązać twój problem. –

Powiązane problemy