0
votes

Une erreur de niveau de transport s'est produite lors de la réception des résultats de l'erreur de serveur C #

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 TEST P>

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> xxx pré>

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=&quot;data source=xxx;initial catalog=xxx;persist security info=True;user id=xxx;password=xxx;multipleactiveresultsets=True;application name=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" />
</connectionStrings>


3 commentaires

À 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 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


3 Réponses :


1
votes

Votre chaîne de connexion actuelle est une structure de connexion Framework 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 sqlbulkcopy , vous avez besoin d'un nettoyer la chaîne de connexion ADO.net - Essayez quelque chose comme ceci: xxx

Utilisez cette chaîne de connexion pour votre sqlbulkcopy (adaptez votre getconnectionstring pour renvoyer cette chaîne de connexion Ado.net pure pour le composant de copie en vrac), < / p>


8 commentaires

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" ?


Le nom peut être n'importe quoi - tout simplement pas "xxx" - il doit être unique 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; (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 : Je peux enregistrer le fichier avec 50 lignes mais pas avec 2000 .. (problème uniquement dans l'environnement de test non à la section locale)



-1
votes

Vous devriez voir cette page de MSDN ...

https://social.msdn.microsoft.com/forums/en-us/89D4A844-180A-40DF-BA48-B3Dade9B310C / Error-A-TransportLevel-Error-a-t-il eu-on s'est produit-quand-réception-résultats-Résultats du fournisseur de serveur? Forum = AdodotNetentityFramework


0 commentaires

0
votes

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

Voici mon code: xxx


0 commentaires