J'ai essayé de lire des informations à partir d'Excel File et de l'enregistrer dans SQL.
Lorsque j'exécute le code local, il fonctionne parfaitement mais l'exception seulement dans l'environnement L'erreur est: p> Une erreur de niveau de transport s'est produite lors de la réception des résultats du serveur. (Fournisseur: fournisseur de session, erreur: 19 - La connexion physique n'est pas utilisable) P>
blockQquote> Mon code ressemble à ceci: p> J'écris l'exception à la base de données et le code a échoué dans cette ligne: P>
<connectionStrings>
<add name="xxx"
connectionString="metadata=res://*/DataModel.csdl|res://*/DataModel.ssdl|res://*/DataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=xxx;initial catalog=xxx;persist security info=True;user id=xxx;password=xxx;multipleactiveresultsets=True;application name=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
3 Réponses :
Votre chaîne de connexion actuelle est une structure de connexion forte> Framework forte> Connexion - à l'aide de l'ancien vieil, n'est plus vraiment prise en charge de la base de données - première approche avec un modèle de base de données Pour le Utilisez cette chaîne de connexion pour votre .
sqlbulkcopy code>, vous avez besoin d'un nettoyer la chaîne de connexion ADO.net - Essayez quelque chose comme ceci: p>
sqlbulkcopy code> (adaptez votre
getconnectionstring code> pour renvoyer cette chaîne de connexion Ado.net pure pour le composant de copie en vrac), P> < / p>
Je vais l'essayer mais vous savez pourquoi cela ne s'est produit que dans le test et non à la section locale?
Ce nom n'est qu'un exemple ou nécessaire nom = "bulkcopy" code>?
Le nom peut être n'importe quoi - tout simplement pas "xxx" - il doit être unique b> dans votre fichier de configuration
Et comment je sélectionne ce nom spécifique et non l'autre?
String BulkCopyConnectionsTring = ConfigurationManager.ConnectionsTrings ["Bulkcopy"]. Connectio Nstring; Code> (Remplacez "` Bulkcopy "avec n'importe quel nom que vous avez choisi pour votre connexion de copie en vrac Stirgng
J'ai essayé localement et ça fonctionne parfaitement le problème est la version de test
Eh bien, alors il doit y avoir quelque chose de fondamentalement différent entre vos environnements locaux et vos environnements de test - mais d'après ce que vous avez posté jusqu'à présent, il n'y a aucun moyen que nous puissions repérer cela pour vous et vous aider ....
EDIT B>: Je peux enregistrer le fichier avec 50 lignes mais pas avec 2000 .. (problème uniquement dans l'environnement de test non à la section locale)
Vous devriez voir cette page de MSDN ... P>
Après 2 jours, j'ai fondé ce travail pour moi (aussi à l'aide de @marc_s Réponse)
i Utilisez la transaction et "Enregistrer" chaque fois que 10 lignes P>
Voici mon code: P>
À quoi ressemble votre chaîne de connexion? Votre serveur est-il configuré pour recevoir une connexion à distance reçue?
Pouvez-vous accéder à la source de données code> comme spécifié à l'aide de SSMS ou similaire à vérifier que la connexion fonctionne réellement.
Je sélectionne beaucoup de données de SQL sur mon site et tout fonctionne bien (je veux dire test et local) BTW I utilise entité Franework