XMLHTTP POST请求和System.Reflection

时间:2008-11-05 00:43:17

标签: asp.net reflection xmlhttprequest dts

我有一个DTS作业,它使用MSXML2.XMLHTTP3.0对象生成对ASP.NET应用程序的发布请求。在幕后,ASP.NET应用程序使用System.Reflection获取一些程序集信息,我收到以下异常:

  

System.Web.HttpException错误代码:   -2147467259消息会话状态只能在enableSessionState时使用   在a中设置为true   配置文件或在页面中   指示。还请确保   System.Web.SessionStateModule或   自定义会话状态模块是   包含在\部分中   应用程序配置。

DTS工作代码:

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应用程序代码:

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);

问题是,我是否需要在XMLHTTP请求中向ASP.NET应用程序提供虚拟Active Directory凭据以避免出现错误消息

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

根据异常消息判断,这对我来说看起来不像是身份验证问题。 可能是被调用的方法试图访问ASP.NET会话?这可以解释这个例外。

答案 2 :(得分:0)

@Israr Khan:

当DTS调用该流程所需的特定网页时,我们最终找不到执行反射代码的解决方法。

这可以解释为什么当我们在开发和生产环境中尝试解决此问题时,我们得到的结果好坏参半。我对每个环境中的web.config文件进行了比较,并注意到HttpModules部分中的Session引用位于我们的生产环境中,但不在我们的开发环境中。

该过程在开发中起作用,但在生产中不起作用。我已经向我的同事提交了这个建议,看看他们是否想尝试这个解决方案而不是解决方法。