2008-11-05 15 views
0

J'ai un travail DTS qui utilise l'objet MSXML2.XMLHTTP3.0 pour générer une demande de publication vers une application ASP.NET. Sous les couvertures, l'application ASP.NET utilise System.Reflection pour acquérir des informations de montage et je reçois l'exception suivante:XMLHTTP POST request et System.Reflection

System.Web.HttpException Code d'erreur: -2147467259 état de session du message ne peut être utilisé lorsque enableSessionState est défini sur true, dans un fichier de configuration ou dans la directive Page . Assurez-vous également que System.Web.SessionStateModule ou un module d'état de session personnalisé est inclus dans la section \ dans la configuration de l'application .

DTS Code de travail:

Dim objSvHTTP 
Dim PostData 

Set objSvHTTP = CreateObject("Msxml2.XMLHTTP.3.0") 
objSvHTTP.open "POST", "http://www.mywebsite.com", false 
objSvHTTP.send 

If (objSvrHTTP.responseText = "") Then 
    //do something 
Else 
    //do somethiing else 
End If 

ASP.NET Code d'application:

string WebPath = "D:\mywebsite\bin\mywebsite.dll"; 
Assembly UI = Assembly.LoadFrom(@WebPath); 
Type t = UI.GetType("MyWebsite.BasePage"); 
MethodInfo MyMethod = t.GetMethod("MyMethod"); 
object obj = Activator.CreateInstance(t); 
MyMethod.Invoke(obj, null); 

La question est, dois-je fournir vaild informations d'identification Active Directory dans la demande de XMLHTTP à l'ASP. Application NET pour éviter le message d'erreur

Répondre

0

À en juger par le message d'exception, cela ne ressemble pas à un problème d'authentification. o moi. Se pourrait-il que la méthode invoquée tente d'accéder à la session ASP.NET? Cela expliquerait l'exception.

0

@Israr Khan:

Nous avons finalement trouvé une solution de contournement de ne pas exécuter le code de réflexion lorsque le DTS a appelé la page web particulière qui a été nécessaire pour le processus. Cela expliquerait pourquoi nous obtenions des résultats mitigés lorsque nous essayions de résoudre ce problème dans nos environnements de développement et de production. J'ai fait une comparaison des fichiers web.config dans chaque environnement et j'ai remarqué que la référence de session dans la section HttpModules était dans notre environnement de production, mais pas dans notre environnement de développement.

Le processus a fonctionné en développement et n'a pas fonctionné en production. J'ai soumis cette suggestion à mes collègues pour voir s'ils veulent essayer cette solution au lieu de la solution de contournement.

+0

Roger - espérons que cela fonctionne;) –