【问题标题】:XMLHTTP POST request and System.ReflectionXMLHTTP POST 请求和 System.Reflection
【发布时间】:2008-11-05 00:43:17
【问题描述】:

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

System.Web.HttpException 错误代码: -2147467259 消息会话状态只能在 enableSessionState 时使用 设置为真,无论是在 配置文件或页面中 指示。还请确保 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);

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

【问题讨论】:

    标签: asp.net reflection xmlhttprequest dts


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      从异常消息来看,这对我来说不像是身份验证问题。 难道是被调用的方法试图访问 ASP.NET 会话?这可以解释异常。

      【讨论】:

        【解决方案3】:

        @Israr Khan:

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

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

        该过程在开发中有效,但在生产中无效。我已将此建议提交给我的同事,看看他们是否想尝试此解决方案而不是解决方法。

        【讨论】:

          猜你喜欢
          • 2019-06-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-22
          • 2015-07-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多