2013-07-04 18 views
5

Chcę zadeklarować mój ciąg połączenia w IIS i dostać go stamtąd. Nie chcę zadeklarować go na stronie web.config. Raczej muszę wiedzieć, czy jest możliwe pobranie łańcucha z iis w web.config lub odczytanie go z pliku kodu. Używam asp.net 4.0., Kodowanie w języku C# i serwer jest IIS7.5connectionstring deklaruje w iis bez zadeklarowania w web.config

+0

Co jest nie tak z 'web.config'? Co ci zrobił? Czy jest jakiś szczególny powód, dla którego nie pasuje do twojego przypadku użycia? – Arran

+0

Po prostu ciekawy, gdzie według ciebie będzie przechowywany ciąg połączenia w IIS, domyślam się 'web.config' (z przyjemnością wiem, czy jest coś innego) – V4Vendetta

+0

Wiele ustawień specyficznych dla witryny (np. Handlerów) jest przechowywanych w' web.config' ... Proszę powiedzieć, co jest nie tak z przechowywaniem go w web.config i jak chciałbyś to zapisać. – CodeCaster

Odpowiedz

3

Według this article możesz użyć interfejsu użytkownika IIS lub wiersza polecenia, aby zmodyfikować ciąg połączenia, ale to po prostu napisz do <connectionString> element w pliku web.config w dowolny sposób (chyba, że ​​ustawiłeś go tak, aby zapisywać w innym miejscu).

Ponadto, można przechowywać je w innym pliku .config jeśli chcesz, i pociągnąć go do pliku web.config jak tak

<appSettings file="../VirtualDirectory/config/Env.config"> 
</appSettings> 

Mogłeś wtedy nazwać tak jak w kodzie:

System.Configuration.ConfigurationManager.AppSettings["DefaultConn"] 

Może to być przydatne, jeśli chcesz, aby lokalizacja twojego połączenia nie była pod Twoją stroną (np. W katalogu wirtualnym).

+0

Dzięki za odpowiedź. Nie chcę czytać tego z innego pliku web.config. Chcę go odczytać z iis bez deklarowania go w żadnym pliku web.config. Czy to możliwe? – polin

+0

@polin Można to zrobić, ponieważ jest to w zasadzie tylko wiersz tekstu, ale polecam go odrzucić. Jedną z opcji, którą znalazłem, było zapisanie jej w rejestrze. http://stackoverflow.com/questions/1792911/storing-connection-strings-in-registry http://www.codeproject.com/Articles/3881/Working-with-Windows-Registry-using-VB-NET –

0

Powinieneś umieścić ciąg połączenia w web.config. Umieszczenie łańcucha połączenia w innym miejscu może nie być przenośne, na przykład przejście z urządzenia na maszynę. Masz również Machine.config

W sumie, umieścić w pliku web.config i można zaszyfrować je, jeśli dbasz o tajemnicy

Można również mieć osobny plik konfiguracyjny np db.config przywoływany z pliku web.config przy użyciu atrybutu configSource.

<connectionStringss configSource="Configuration\db.config" /> 
+0

Dzięki dla odpowiedzi. Nie chcę czytać tego z innego pliku web.config. Chcę go odczytać z iis bez deklarowania go w żadnym pliku web.config. Czy to możliwe? – polin

Powiązane problemy