OLEDBConnection.Open() génère une "erreur non spécifiée"
J'ai une application qui télécharge un fichier Excel .fichier xls dans le système de fichiers, le fichier s'ouvre avec un objet oledbconnection à l'aide de l' .la méthode open() sur l'instance de l'objet, puis stocke les données dans une base de données. Le téléchargement et l'écriture du fichier sur le système de fichiers fonctionne très bien mais j'obtiens une erreur lorsque vous essayez d'ouvrir le fichier sur notre serveur de production seulement. L'application fonctionne très bien sur les deux autres serveurs (de développement et de test des serveurs).
Le code suivant génère une "Erreur non spécifiée" dans l'Exception.Message.
Citation:
System.Data.OleDb.OleDbConnection x = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + location + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");
try
{
x.Open();
}
catch (Exception exp)
{
string errorEmailBody = " OpenExcelSpreadSheet() in Utilities.cs. " + exp.Message;
Utilities.SendErrorEmail(errorEmailBody);
}
:Fin De Citation
Du serveur c:\\temp et c:\Documents and Settings\\aspnet\local settings\temp à la fois donner \aspnet le plein contrôle.
Je crois qu'il y a une sorte de problème d'autorisations, mais n'arrive pas à trouver la différence entre les autorisations sur les dossiers et le dossier/répertoire où le fichier Excel est téléchargé. L'emplacement est utilisé pour enregistrer le fichier et l'ouvrir à et les méthodes de travail sur mon poste de travail et deux serveurs web. Windows 2000 SP4 serveurs.
OriginalL'auteur Mike Smith | 2008-09-18
Vous devez vous connecter pour publier un commentaire.
Alors que le problème d'autorisations peuvent être plus fréquents que vous pouvez rencontrer cette erreur de système de fichiers de Windows/Access Jet Moteur de base de données des limites de connexion, 64/255 je pense. Si vous perdez le 255 Accès en lecture/écriture de connexions simultanées ou 64(?) limite de connexion par processus, vous pouvez obtenir exactement le même message d'erreur. Au moins, j'ai trouver que dans une application où les connexions étaient continuellement créé et n'a jamais bien fermé. Un simple
Conn.close();
tombée dans et la vie était bonne. J'imagine Excel pourrait avoir des problèmes similaires.Conn.Dispose()
apparemment n'est pas de fermer la connexion.OriginalL'auteur domoaringatoo
Si vous êtes à l'aide de l'usurpation d'identité, vous devez donner la permission à l'usurpation de l'identité de l'utilisateur au lieu de/en outre à l'utilisateur aspnet.
OriginalL'auteur StronglyTyped
Quelque chose à l'intérieur de l'exception? Est-ce une application 64 bits? Les fournisseurs OLEDB ne fonctionne pas en 64 bits. Vous disposez de votre application cible x86. Trouvé ce lorsque vous obtenez une erreur en essayant d'ouvrir l'accès DB sur mon ordinateur 64 bits.
OriginalL'auteur Darren Kopp
Yup. Je n'ai que trop. Pris IMEX=1, a pris les Propriétés Étendues, etc. J'ai réussi à le casser sur le dev et les serveurs de test. 🙂 J'ai mis ceux de dans un à la fois jusqu'à ce qu'il a été fixé sur dev et test de nouveau, mais toujours pas de workie sur prod.
OriginalL'auteur Mike Smith
Essayer d'emballage l'emplacement des guillemets simples
OriginalL'auteur Joshua Turner
J'ai eu cette erreur sur les autorisations chose, mais on dirait que vous avez couvert. J'ai aussi vu ça avec l'un des drapeaux dans la chaîne de connexion, vous pouvez l'utiliser pour jouer un peu.
OriginalL'auteur Danimal