0

MSXML2.XMLHTTP3.0 オブジェクトを使用して ASP.NET アプリケーションへのポスト要求を生成する DTS ジョブがあります。内部では、ASP.NET アプリケーションが System.Reflection を使用してアセンブリ情報を取得していますが、次の例外が発生します。

System.Web.HttpException エラー コード: -2147467259 メッセージ セッション状態は、構成ファイルまたは Page ディレクティブで enableSessionState が 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);

質問は、エラー メッセージを回避するために、ASP.NET アプリケーションへの XMLHTTP 要求で有効な Active Directory 資格情報を提供する必要があるかどうかです。

4

3 に答える 3

1

これを試してください: http ://support.instantasp.co.uk/Topic4710-31-1.aspx

于 2008-11-14T09:57:57.497 に答える
0

例外メッセージから判断すると、これは私には認証の問題のようには見えません。呼び出されたメソッドがASP.NETセッションにアクセスしようとしている可能性がありますか?それは例外を説明するでしょう。

于 2008-11-14T09:48:35.830 に答える
0

@イスラー・カーン:

最終的に、DTS がプロセスに必要な特定の Web ページを呼び出したときに、リフレクション コードを実行しないという回避策を見つけました。

これは、開発環境と本番環境でこの問題を解決しようとしたときに、さまざまな結果が得られた理由を説明しています. 各環境で web.config ファイルを比較したところ、HttpModules セクションの Session 参照が実稼働環境にあり、開発環境にはないことがわかりました。

このプロセスは開発では機能しましたが、本番環境では機能しませんでした。この提案を同僚に提出して、回避策ではなくこの解決策を試してもらいたいかどうかを確認しました。

于 2008-11-14T17:26:19.353 に答える