Różne config'i dla debug i dla release

0

Witam, mam problem w projekcie MVC, chciałbym przy debugowaniu w trybie debug i release korzystać z dwóch różnych usług, usługi stoją na WCF'ie. W projektach typu mvc domyślnie oprócz głównego config'u tworzą się też debug i release, jednak w żaden sposób nie udaje mi się wykorzystać opcji o której wyżej wspomniałem.

W głównym config'u mam tak ustawionego endpoint'a:

<client>
      <endpoint address="superowausluga" binding="basicHttpBinding"
        bindingConfiguration="BasicHttpBinding_Isuperowausuga" contract="superowausluga"
        name="BasicHttpBinding_Isuperowausluga" />
    </client>

i usługa ta działa i w trybie debug i release, mimo że w pliku web.release.config mam ustawiony endpoint:

<endpoint address="taDrugaSuperUsluga"
      binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ItaDrugaSuperusluga"
      contract="drugausluga.ItaDrugaSuperUsluga" name="BasicHttpBinding_ItaDrugaSuperUsluga" />

Próbowalem wklejać ten endpoint w różnych miejsach, opatrzyć go tagami <client> </client>, tego głównego endpointa totalnie wywalić z głównego cfg i wrzucić do debug, ale nic nie działa. Czy jest ktoś kto jest w stanie mi powiedzieć jak uporać się z tą świetną i bardzo przyjemną funkcją?

2

A czytałeś komentarze które są w tym pliku Web.Debug.config ;)? To są transformacje i jest tam dokładnie opisane to co chcesz zrobić czyli podmiana adresu:

 In the example below, the "SetAttributes" transform will change the value of
    "connectionString" to use "ReleaseSQLServer" only when the "Match" locator
    finds an attribute "name" that has a value of "MyDB".

    <connectionStrings>
      <add name="MyDB"
        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
    </connectionStrings>

ergo trzeba dodać atrybut xdt:Transform="SetAttributes" do elementu "endpoint", i ewentualnie xdt:Locator="Match(name)" jeśli masz więcej niż jeden endpoint, co dalej implikuje że nazwy endpointów powinny być takie same pomiędzy wersjągłówną a debug i release.

A teraz największa magia, klikając prawym klawiszem myszy na Web.Debug.config -> Preview Transform możesz zobaczyć jak będzie wyglądał plik po transformacji.

0

Komentarze oczywiście czytałem i starałem się stosować, odnośnie właściwości preview transform, kiedy próbuje wykorzystać po wprowadzeniu zmian wyrzuca mi error: "there were transformation errors. see the output window for details.", dalej żadne okna nie wyskakują, konsola nie wywala błędów, jak próbuje kompilować też żadnych błędów nie dostaje tylko że ładuje bazową usługę z głównego config'u

0

Skoro są błędy to chyba na logikę nie bedzie działać ;) Output window to jedno z okienek VS, dostępne z głównego menu View -> Output.
Więc przeczytaj jakie sa błędy i je popraw, ewntualnie wstaw tutaj cały config.

0

Okazało się że do działania nie wystarczyło wrzucić samego endpointa czy też nawet endpointa z <client>, ale wszystko co siedzi w <system.servicemodel>, tak czy inaczej wszystko działa już jak chciałem, bardzo dziękuje za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0