English 中文(简体)
XMLHTTP POST 请求和 System.Reflection
原标题:
  • 时间:2008-11-05 00:43:17
  •  标签:

我有一个DTS任务,它使用MSXML2.XMLHTTP3.0对象生成一个发送请求到ASP.NET应用程序。在底层,ASP.NET应用程序使用System.Reflection获取一些程序集信息,我收到以下异常:

System.Web.HttpException Error Code: -2147467259 Message Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the section in the application configuration.

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:mywebsiteinmywebsite.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请求中提供有效的Active Directory凭据给ASP.NET应用程序以避免错误消息。

问题回答

Judging by the exception message this does not look like an authentication problem to me. Could it be that the invoked method tries to access the ASP.NET Session? That would explain the exception.

@Israr Khan:伊斯拉尔·汗

我们最终找到了一个解决方法,即在DTS调用所需过程的特定网页时,不执行反射代码。

这就解释了为什么在我们的开发和生产环境中尝试解决这个问题时我们得到了混合的结果。我对每个环境中的web.config文件进行了比较,并注意到在我们的生产环境中HttpModules部分中的会话引用存在,但在我们的开发环境中不存在。

这个过程在开发中运作正常,但在生产环境中却不起作用。我已经向我的同事提交了这个建议,看看他们是否想试试这个解决方法,而不是采用临时解决方案。





相关问题
热门标签