我有一个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凭据以避免出现错误消息
答案 0 :(得分:1)
答案 1 :(得分:0)
根据异常消息判断,这对我来说看起来不像是身份验证问题。 可能是被调用的方法试图访问ASP.NET会话?这可以解释这个例外。
答案 2 :(得分:0)
@Israr Khan:
当DTS调用该流程所需的特定网页时,我们最终找不到执行反射代码的解决方法。
这可以解释为什么当我们在开发和生产环境中尝试解决此问题时,我们得到的结果好坏参半。我对每个环境中的web.config文件进行了比较,并注意到HttpModules部分中的Session引用位于我们的生产环境中,但不在我们的开发环境中。
该过程在开发中起作用,但在生产中不起作用。我已经向我的同事提交了这个建议,看看他们是否想尝试这个解决方案而不是解决方法。