Déterminer corriger connectionString pour la publication web ASP.NET MVC de l'application

Au cours du développement de l'ASP.NET MVC de l'application sur l'ordinateur local, j'ai utilisé ce connectionStringavec aucun problème:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\AppDb.mdf;Initial Catalog=AppDb;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>

Dans le service d'hébergement de la base de données du panneau de contrôle que je peux obtenir de la chaîne de connexion à mon MSSQL(j'ai choisi SQL Server 2012 de la base de données, mais je peux choisir 2014 si ça aide). Ils disent chaîne de connexion est:

"Data Source=SQL5013.myASP.NET;Initial Catalog=DB_9B42A0_baza;User Id=DB_9B42A0_baza_admin;Password=YOUR_DB_PASSWORD;"

Info sur mon MSSQL base de données:

Server name :   SQL5013
Server version :    Microsoft SQL Server 2012 - 11.0.5058.0 (X64) 
May 14 2014 18:34:29 
Standard Edition (64-bit) on Windows NT 6.3 (Build 9600: )
Database name:DB_9B42A0_baza    
Server URL:SQL5013.myASP.NET    
Login name:DB_9B42A0_baza_admin

Ma demande est ASP.NET-MVC5.1 avec Entity Framework 6.

Ici, c'est ce que j'ai essayé:

Tentative 1

Ajouté cette définition de la connexion entre <connectionStrings> </connectionStrings>

 <add name="DefaultConnection" connectionString="Data Source=SQL5013.myASP.NET;Initial Catalog=DB_9B42A0_baza;User Id=DB_9B42A0_baza_admin;Password=12345678;" providerName="System.Data.SqlClient" />

Résultat quand j'accède à mon site web:

Exception Details: System.ArgumentException: Format of the initialization string does not conform to specification starting at index 0.

Tentative 2

<add name="DefaultConnection" connectionString="Provider=sqloledb;Data Source=SQL5013,1433;Initial Catalog=DB_9B42A0_baza;User Id=DB_9B42A0_baza_admin;Password=12345678;" providerName="System.Data.SqlClient" />

Résultat quand j'accède à mon site web:

Exception Details: System.ArgumentException: Keyword not supported: 'provider'.

Tentative 3

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\AppDb.mdf;Initial Catalog=AppDb;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

Plus en WebApplication2(c'est le nom de mon ASP.NET-application MVC) propriétés:

Déterminer corriger connectionString pour la publication web ASP.NET MVC de l'application

Résultat quand j'accède à mon site web:

Exception Details: System.ArgumentException: Format of the initialization string does not conform to specification starting at index 0.

Tentative 4 (basé sur le premier exemple de http://www.connectionstrings.com/sqlconnection/)

<add name="DefaultConnection" connectionString="Server=SQL5013.myASP.NET;Database=DB_9B42A0_baza;User Id=DB_9B42A0_baza_admin;Password=12345678;" providerName="System.Data.SqlClient" />

Résultat quand j'accède à mon site web:

Exception Details: System.ArgumentException: Format of the initialization string does not conform to specification starting at index 0.

Résumé:

J'ai essayé beaucoup de choses pour le faire fonctionner pendant les 3 derniers jours que je ne m'en souviens pas. J'ai lu beaucoup d'articles MSDN et pas de chance. Si je peux fournir plus d'informations à propos de la base de données ou de l'application s'il vous plaît dites, je mettrai à jour le post d'ici peu.

Question:

Que dois-je écrire dans <connectionStrings> </connectionStrings> seciton pour faire la connexion de base de données de travail après que je les publie?


informations Supplémentaires:

Mon Web.config fichier est:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>   
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\AppDb.mdf;Initial Catalog=AppDb;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<customErrors mode="Off"/>
</system.web>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
</system.web>
<system.webServer>
<modules>
<remove name="FormsAuthenticationModule" />
</modules>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>

Update -> code resposible pour la base de données

Application_Start dans Global.asax

namespace WebApplication2 {
public class MvcApplication : System.Web.HttpApplication {
protected void Application_Start() {
System.Diagnostics.Debug.WriteLine("Application_Start");
Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());
new ApplicationDbContext().Database.Initialize(true);
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
}

et la Configuration/Migrations.cs fichier:

namespace WebApplication2.Migrations {
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using System;
using System.Collections.Generic;
using System.Data.Entity.Migrations;
using System.Data.Entity.Validation;
using System.Linq;
using WebApplication2.Models;
internal sealed class Configuration : DbMigrationsConfiguration<WebApplication2.Models.ApplicationDbContext> {
public Configuration() {
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
ContextKey = "WebApplication2.Models.ApplicationDbContext";
}
protected override void Seed(WebApplication2.Models.ApplicationDbContext context) {
System.Diagnostics.Debug.WriteLine("SEED STARTED");
}
}
}

et Models/IdentityModels.cs où est mon DbContext définis:

using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using System;
using System.Collections.Generic;
namespace WebApplication2.Models {
// You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more.
public class ApplicationUser : IdentityUser {
USER PROPERTIES HERE
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) {
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser> {
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false) {
System.Diagnostics.Debug.WriteLine("CONSTRUCTOR");
Configuration.LazyLoadingEnabled = true;
Configuration.ProxyCreationEnabled = true;
}
DBSETS HERE
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Person>().HasMany(p => p.Answers).WithMany(a => a.Persons);
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
public static ApplicationDbContext Create() {
return new ApplicationDbContext();
}
}
}

note

Je ne suis pas éligible pour commencer bounty avant les 2 jours à partir de poser une question, mais si cela peut vous aider je vous offre 500 points de réputation pour le travail de la chaîne de connexion (je vais l'accorder quand le bounty sera possible). C'est trop dur pour moi et j'ai essayé de nombreuses choses pour les 3 jours.

  • La meilleure ressource pour la chaîne de connexion est connectionstrings.com
  • Je vous remercie. J'ai été là avant. J'ai ajouté Attempt 4 pour le Post Original basé sur leur syntaxe. Peut-être il ya quelque chose de mal dans mon Web.config Entité Cadre de sections? En local tout fonctionne toujours, SANS exception, à tous(avec LocalDb connexions chaîne que j'ai posté en haut de l'Original Post), jamais. C'est mon site: informatyka4444-001-site1.myasp.net
  • Pouvez-vous montrer le code que vous utilisez pour récupérer et utiliser la chaîne de connexion?
  • Je pense que je ne comprends pas. Ne vous demandez comment je générer la chaîne de connexion que j'ai mis dans le Web.config?
  • Non, le code C# qui utilise la chaîne de connexion.
  • Ok, je pense que je l'ai posté en bas de OriginalPost. J'ai enlevé la Graine méthode contenu c'est trop long à poster sur DONC. Également supprimé DB_SETS et les propriétés de l'utilisateur.
  • Je pense qu'il pourrait être la chose que vous demandez: public ApplicationDbContext() : base("DefaultConnection", throwIfV1Schema: false) mais je ne suis pas sûr. Il est au bas de l'OP dans le dernier code de la citation. C'est ma première publication web.
  • Laissez-nous continuer cette discussion dans le chat.
  • Avez-vous obtenir n'importe où avec ça?
  • Oui, je l'ai fait, je vais mettre à jour l'objet aujourd'hui et commencez à le bounty comme je l'ai dit. Tony Stark solution fonctionne comme un charme(mettre de l'hébergeur de la Chaîne de connexion dans l'onglet Paramètres de Pubish Menu Web)mais je voudrais savoir que faut-il générer de l'intérieur: <connectionStrings> </connectionStrings> lors de la publication. Je le mettrai à jour aujourd'hui. En d'autres termes, je voudrais savoir quelle chaîne de connexion suppose d'être en Web.config pour le faire publier sans ces changements dans l'onglet Paramètres de la publication Web.
  • woohoo, heureux de savoir que ma suggestion travaillé et merci d'avance pour votre générosité. Pour répondre à ur questions - 1. en quoi est-il de générer à l'intérieur de: <connectionStrings> </connectionStrings> lors de la publication? - le magicien du fait de la transformation/remplacer de la sélection de la chaîne de connexion pendant le déploiement. Cela se produit uniquement lorsque vous publiez sur le web. L'option n'est pas disponible si la publication est faite à un système de fichiers. 2. quelle chaîne de connexion suppose être dans le Web.config pour le faire publier sans ces changements dans l'onglet Paramètres de la publication Web? point ur config à destination de la connexion ou de l'utilisation d'une transformation.
  • J'ai le sentiment que votre problème a été [providerName="le Système de.Les données.SqlClient"] dans le web.config - suppression il pourrait résoudre le problème 🙂
  • Supprimer ce a été à l'origine erreur qui dit qu'il y supposé être providerName.
  • Après la publication du projet, ftp sur le serveur et tirez sur le web.config du fichier et de l'ouvrir dans un éditeur de texte. Je serais très intéressé de savoir ce qui est dans ce fichier que votre connectionString. Je soupçonne que VS est en cours d'exécution certains publient des transformations est de le jeter hors.

InformationsquelleAutor Yoda | 2014-10-08