27

Masz problemy z wdrażaniem witryny na serwerze r2 z systemem Windows 2008 r. Z uruchomionymi usługami IIS7. Wcześniej wdrożyłem inną witrynę na tym serwerze. Wdrażanie sieci łączy i kopiuje moje pliki do serwera, ale widzę następujące błędy.VS2010 sieć wdrażaj argument ciąg połączenia nie może być pusty lub pusty

1 The 'Connection String' argument cannot be null or empty 
2 Web deployment task failed.((20/07/2012 14:19:16) An error occurred when the request was processed on the remote computer.) 

(20/07/2012 14:19:16) An error occurred when the request was processed on the remote computer. Could not find a part of the path 'C:\Users\Me\Documents\Visual Studio 2010\Projects\MySite\MySiteClient\obj\Release\AutoScripts\EFDbContext-Deployment_SchemaOnly.sql'.  0 0 MySiteClient 

Sprawdziłem, czy ścieżka istnieje na moim komputerze lokalnym.

Próbowałem już publikować bez transformacji web.config i przy użyciu funkcji xdt: transform do ustawiania łańcuchów serwera zdalnego.

Mam również jawnie ustawić ciąg połączenia dla docelowej i źródłowej bazy danych w karcie Pakiety/Publikuj SQL i jestem zagubiony, co do problemu.

Wszelkie pomysły?

+0

Pełny błąd użytkownika. Po zaimportowaniu z mojej konfiguracji sieci Web miałem dwa wpisy DB: ApplicationServices i MyAppContext. Ustawiłem ciąg połączenia dla pierwszego wpisu aplikacji, ale nie dla wpisu MyAppContext. Pomyślałem, że przeoczyłem to, ponieważ nie zdawałem sobie sprawy, że pole wprowadzania ciągu połączenia zmieniło się z zaznaczoną pozycją w polu listy bazy danych. doh ..... – MPD

Odpowiedz

44

To stało się teraz dla mnie i udało mi się wyizolować problem ... po ręcznym dodaniu nowego ciągu połączenia SQL Server w moim Web.config zacząłem doświadczać tego samego błędu podczas próby wdrożenia na serwerze zdalnym.

Kiedy otworzyłem wstęga wdrożyć Publish profil w Visual Studio 2012 zauważyłem na karcie Settings że postawił tę opcję: użyć tego ciągu połączenia w czasie wykonywania (zmiana przeznaczenia Web.config).

dziwo to był ustawiony automatycznie przez VS 2012 ...

Aby rozwiązać ten problem, wystarczy usunąć zaznaczenie pola wyboru i że internetowy Wdrażanie powinno rozpocząć pracę jeszcze raz.

enter image description here

+4

Ponadto, jeśli powyższe kroki nie działają: usuń profil publikowania, a następnie postępuj zgodnie z instrukcjami powyżej, które powinny go naprawić. Happy kodowania wszystkim! –

+1

wielkie dzięki ...! – Luftwaffe

+0

Dzięki, ten post bardzo mi pomógł i zaoszczędził mój czas. –

14

Oprócz odpowiedzi Leniel jest, w przypadku, gdy nie jest używany SqlClient lub Entity Framework kod najpierw, a więc nie widzę pole (ES), tymczasowo ustawić providerName w ciągu połączenia Twojej web.config do System.Data.SqlClient, a następnie wróć do ustawień publikowania, aby odznaczyć pole (pola) wyboru.

+0

Dziękuję za to, użyłem ciąg połączenia Windows Azure Storage i musiałem zrobić tak jak powiedziałeś (zmieniając na System.Data.SqlClient, a następnie ponownie zapisując ustawienia publikowania), aby usunąć ten błąd. – QFDev

+0

Używam MySql na Azure i mam providerName = "Dostawca danych MySQL" i nadal błąd pojawia się po wdrożeniu. (i nie pojawi się pole wyboru na stronie wdrażania). Czy możesz pomóc? – Bergkamp

+0

Czy próbowałeś najpierw zmienić parametr providerName na "System.Data.SqlClient", zanim otworzysz stronę wdrażania? –

0

Ten sam problem wystąpił podczas wdrażania aplikacji WWW na serwerze sieciowym Azure. Rozwiązałem go, tworząc nowy serwer. W tym momencie zdałem sobie sprawę, że wcześniej była inna aplikacja na tym serwerze. Ta aplikacja użyła nazwy kontekstu, która nie została zignorowana przez drugą aplikację, tak że jeden szukał połączenia, które zostało przesłonięte przez drugą aplikację. Przypuszczam, że wyczyszczenie serwera może rozwiązać problem.

12

miałem ten sam problem:

2> C: ... \ Microsoft.Web.Publishing.targets (4270,5): Błąd: 'db-Web.config String Connection' Argument nie może być pusty ani pusty. 2> C: ... \ Microsoft.Web.Publishing.targets (4270,5): Błąd: Argument "dbAudit-Web.config Connection String" nie może mieć wartości null ani być pusty. 2> C: ... \ Microsoft.Web.Publishing.targets (4270,5): Błąd: Argument "ciąg połączenia dbLog-Web.config" nie może mieć wartości null lub być pusty.

jak używałem:

<connectionStrings> 
    <add name="db" providerName="MySql.Data" connectionString="server=mysql.gko.local;user=maindk;database=gavekortet;port=3306;password=123456" /> 
    <add name="dbLog" providerName="MySql.Data" connectionString="server=mysql.gko.local;user=maindk;database=logs;port=3306;password=123456" /> 
    <add name="dbAudit" providerName="MySql.Data" connectionString="server=mysql.gko.local;user=maindk;database=audit;port=3306;password=123456;pooling=false" /> 
</connectionStrings> 

i jak czytam tu problem został dotyczące profilu publikowania, ja potem otworzył plik .pubxml i znalazłem:

<ItemGroup> 
    <MSDeployParameterValue Include="$(DeployParameterPrefix)db-Web.config Connection String" /> 
    <MSDeployParameterValue Include="$(DeployParameterPrefix)dbAudit-Web.config Connection String" /> 
    <MSDeployParameterValue Include="$(DeployParameterPrefix)dbLog-Web.config Connection String" /> 
</ItemGroup> 

dodaj <UpdateDestWebConfig>False</UpdateDestWebConfig> do każdego węzła, aby stał się:

<ItemGroup> 
<MSDeployParameterValue Include="$(DeployParameterPrefix)db-Web.config Connection String"> 
    <UpdateDestWebConfig>False</UpdateDestWebConfig> 
</MSDeployParameterValue> 
<MSDeployParameterValue Include="$(DeployParameterPrefix)dbAudit-Web.config Connection String"> 
    <UpdateDestWebConfig>False</UpdateDestWebConfig> 
</MSDeployParameterValue> 
<MSDeployParameterValue Include="$(DeployParameterPrefix)dbLog-Web.config Connection String"> 
    <UpdateDestWebConfig>False</UpdateDestWebConfig> 
</MSDeployParameterValue> 
</ItemGroup> 

po prostu przez usunięcie tego wpisu, wszystko znowu działa ...

+2

Aweseome, działa świetnie! – Sundeep

3

Żaden z dostarczanych rozwiązań pomógł mi.

końcu odkrył, że w moim lokalnym Web.config, był pusty ciąg domyślne połączenie nazywa LocalMySqlServer (prawdopodobnie tam umieszczone przez pakiet Mysql.Data Nuget).

Po usunięciu podświetlonej linii poniżej udało mi się opublikować.

enter image description here

+1

Wydaje się, że po ponownym zainstalowaniu wszystkich pakietów zainstalował puste wejście do połączenia. To było rozwiązanie, dzięki. ;) Ciągle patrzę na profil publikowania, ale oczywiście błędy MS są rzadko pomocne. ;) –