7
votes

Erreur lors de la création d'un proxy Web

J'ai une application CLR activée .NET qui accède à un service Web et écrit un fichier XML à un serveur Web pour un package SQLServer SSIS à digérer. Tout fonctionne bien sur les serveurs de développement, mais le serveur de production renvoie l'erreur suivante:

Erreur lors de la création du proxy Web spécifié dans le 'system.net/defaultproxy' section de configuration.: à System.net.configuration.defaultproxysectioninternern.Getsection () à System.net.webrequest.get_internernaldefaultwebProxy () au système.net.httpwebrequest..ctor (Uri Uri, point de service de service) à System.net.httpequestcreator.create (Uri URI) à System.net.webrequest.create (URI demandeuri, utilibase booléen) à System.Web.Services.protocols.WebClientProtocol.getwebrequest (Uri URI) à System.web.services.protocols.httpwebclientProtocol.getwebrequest (Uri URI) à System.Web.Services.protocols.SoaphttpClientProtocol.getwebrequest (Uri URI) à System.Web.Services.protocols.soaphttpClientProtocol.invoke (chaîne MéthodeName, paramètres d'objet []) à Mydbproj.com.dmsintegration.secure.vehicleinventoryservice.retriveveHicleInvantage (récupérationLrecordsRequest demande) à Userdefinedfunctions.loaddmsfile (chaîne revendeur_id, chaîne dms_username, chaîne dms_password, chaîne dms_location_id)

Il n'y a pas de différences entre les versions du serveur OS ou les versions SQLServer. Nous utilisons Windows Server 2003 R2 et SQL Server 2005. Je pense que cela doit être une configuration sur le serveur lui-même mais je ne trouve aucune différence entre les serveurs. Ni le serveur ne gère un pare-feu logiciel.

Exception complète:

système.configuration.configurationErrorSexception: Erreur lors de la création du proxy Web spécifié dans le 'system.net/defaultproxy' Section de la configuration. ---> system.dllnotfoundException: impossible de charger la dll 'rasapi32.dll': a Bibliothèque de liaison dynamique (DLL) La routine d'initialisation a échoué. (Exception de HRESULT: 0x8007045A)
à System.net.unsafencenclnativemethods.Rashelper.RasenumConnections (Rasconn [] LPRASCONN, UINT32 & LPCB, UINT32 & LPCConnections) à System.net.unsafenclnativemethods.Rashelper.getCurrentConnectoid () à System.net.AutowebProxyscriptengine.AutoDetector.Imitialize () à System.net.AutowebProxyscriptengine..ctor (WebProxy proxy, uleean useregistry) à System.net.webproxy.unsafeupdatefromEgistry () à System.net.configuration.defaultProxySectionIntint..cteur (DefaultProxysection section) à System.net.configuration.defaultproxysectioninternern.Getsection () --- fin de la trace de la pile d'exception interne --- au système.net.configuration.defaultproxysectionInternal.Getsection () à System.net.webrequest.get_internernaldefaultwebProxy () au système.net.httpwebrequest..ctor (Uri Uri, point de service de service) à System.net.httpequestcreator.create (Uri URI) à System.net.webrequest.create (URI demandeuri, utilibase booléen) à System.Web.Services.protocols.WebClientProtocol.getwebrequest (Uri URI) à System.web.services.protocols.httpwebclientProtocol.getwebrequest (Uri URI) à System.Web.Services.protocols.SoaphttpClientProtocol.getwebrequest (Uri URI) à System.Web.Services.protocols.soaphttpclientProtocol.invoke (chaîne MéthodeName, paramètres d'objet []) à Mydbproj.com.dmsintegration.secure.vehicleinventoryservice.retriveveHicleInvantage (récupérationLrecordsRequest demande) à Userdefinedfunctions.loaddmsfile (chaîne revendeur_id, chaîne dms_username, chaîne dms_password, chaîne dms_location_id)


2 commentaires

Qu'est-ce qu'une application CLR-activée .NET? Je travaille avec .net depuis avant .net 1.0 Beta 1, et je ne pense pas avoir entendu parler de cela.


Il s'agit simplement d'une assemblée C # chargée dans le serveur SQL à utiliser par une fonction et une procédure stockée sur le serveur.


4 Réponses :


1
votes

James, regardez de près:

Erreur lors de la création de la proxy Web spécifiée dans la section de configuration 'system.net/defaultProxy'


7 commentaires

Oui ... Tous les serveurs ont la même configuration dans le web.config. Les paramètres de connexion Internet concernant les proxy Web sont identiques sur tous les serveurs. J'essaie de comprendre pourquoi l'erreur ne se produit que sur un serveur lorsque toutes ces configures sont identiques.


Qu'est-ce qui est spécifié dans la section 'system.net/defaultproxy' sur toutes les machines?


Et avez-vous envisagé machine.config et la base web.config, et tout le webconfigs de la hiérarchie? Les sites sont-ils tous dans le même emplacement virtuel sur toutes les machines?


L'extrait que j'ai posté dans mon commentaire est exactement ce qui est dans le fichier de configuration. apparaît uniquement dans le fichier web.config de base sur chaque serveur. Dans chaque cas, l'ensemble CLR est chargé sur le serveur SQL avec les mêmes autorisations.


Je suppose que je n'ai pas vu le code dans votre commentaire au début. Vous devez mettre à jour votre question avec ces informations. Suggestion: Pouvez-vous choisir un seul proxy et la définir explicitement? "UsingSystemdefault" signifie qu'il pourrait être différent sur chaque système et que vous devriez savoir pourquoi. Aussi, est-ce que toute l'exception? La sortie de l'ex .Tostring ()? Je serais curieux de savoir s'il y avait une exception Innère.


L'InnErException lit: 'system.dllnotfoundException: impossible de charger la dll' rasapi32.dll ': une routine d'initialisation de la bibliothèque de liaison dynamique (DLL) a échoué.' rasapi32.dll est présent au même endroit sur tous les serveurs. Le seul remède commun que j'ai trouvé sur Google est de modifier les utilisationsSystemdefault en faux. Je l'ai fait sur tous les serveurs avec les mêmes résultats.


James, s'il vous plaît faire: Essayez {} catch (exception ex) {console.writeline (ex.tostring ());} et post ex.tostring (). Il peut y avoir plus d'intérieur et les traces de pile peuvent être utiles. rasapi32.dll sera le problème. Ça ne fait pas ça.



4
votes

Nous avions exactement le même message d'erreur lorsque vous appelez un service Web à partir d'une application Winform.

Dans notre cas, l'erreur s'est produite pour un utilisateur, mais pas pour l'autre (avec des autorisations d'administration locales) sur le même serveur.

En fait, il n'a rien à voir avec WCF; Vous auriez la même erreur lorsque vous appelez une page Web simple à partir de votre application. Le compte utilisateur exécutant n'est pas autorisé à ouvrir une connexion proxy Web.

Nous avons résolu le problème en déplaçant l'application dans c: \ Program Files. Pour une raison, je ne peux pas encore expliquer exactement, à partir de ce dossier, le même utilisateur peut créer le proxy.

Tout aperçu de ce serait bienvenu.


2 commentaires

J'avais ce même problème et cela a effectivement travaillé pour moi. Je devais exécuter l'application directement dans le dossier de fichiers de programme. Cela m'a amené à découvrir le vrai problème. Pour une raison quelconque, l'application était installée par défaut à exécuter sous le mode de compatibilité de Windows 2000. Une fois que j'ai décoché cela (clic droit-> Propriétés-> Compatibilité), il a été capable de se connecter au service.


Même ici, courait à partir d'un système de fichiers réseau, ne pouvait pas faire une simple demande HTTP.



0
votes

Cette erreur m'est arrivée lorsque vous essayez d'accéder à Server Server de Windbg. J'étais référencé Tf.exe dans le C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ Ide \ Dossier de mon fichier srcsrv.ini.

J'ai fait une copie de tf.exe / tf.exe.config et placé dans le dossier avec Windbg, et cela a fonctionné bien.

Il s'est avéré qu'une téléchargement antérieure de symboles de la boutique de symboles Microsoft avait mis des dossiers winhttp.dll, etc., dans les fichiers c: \ program (x86) \ Microsoft Visual Studio 10.0 \ common7 \ Ide < / code> dossier, et ceux-ci étaient en cours de lecture. Cela a fait que tf.exe incapable de trouver et de charger ces DLL. Ce qui devrait être arrivé est que Tf.exe ne les a pas trouvés là-bas, mais les chargés au lieu du dossier C: \ Windows \ sswow64 .

Le moniteur de processus de Sysinternals est votre ami!


0 commentaires

2
votes

Nous avions fait face au même problème. Eror Création du proxy Web spécifié dans la section de configuration 'system.net/defaultProxy'.

Je l'ai résolu en corrigeant les entrées incorrectes dans les fichiers de configuration dans le site Web.justez assurez-vous que toutes les balises sont optées et fermées correctement. Vous pouvez réosolver votre problème.


0 commentaires