2011-04-04 60 views
2

このActive X DLLは、VB6 IDEを使用してデバッグしています。私は実行がGetObjectContextへの試みになるのを見ることができます。このメソッドは常にNOTHINGを返します。これは、Windows 7 32ビット上で起こっているGetObjectContextは、VB6 COM dllで、従来のASPから呼び出されたものを返しません。

、私は広範囲にGoogleで検索し、これに多くの参照を発見した

(アプリケーションが他の場所で働いている、IIS 7とWindows Server 2008のであるそのうちの一つ)7. IIS COM +に関連していますが、私のシナリオに関わるCOM +はありません。登録されたdllからの単純な古いServer.CreateObject。

SET objCalendar = Server.CreateObject("SSYSDEV.Calendar") 
objCalendar.BuildCalendar("ADMINUSERS") 
SET objCalendar = Nothing 

を次のように私は、ASPコードを持っているDLL内の要求された機能の問題行がされています、いつものように、非常に理解されるであろう

Dim objHttpRequest As ASPTypeLibrary.Request 
Set objHttpRequest = GetObjectContext.Item("Request") 

すべてのヘルプや提案。

私はまだVB6で作業しなければならないというショックを乗り越えています。それは暗黒の時代に引きずられるようなもので、非常に荒いやり方で水疱を引き起こします!

P.S.私もCOM +コンポーネントを設定してASPにオブジェクトをそのように取得させました。この場合、GetObjectContextはASPオブジェクトを持たない空のオブジェクトを返します。これは役に立たない:-(

+0

上記の動作は、デバッグ時にCOM +が別の方法で動作することが原因であることがわかりました。デバッグでは、常に有用なオブジェクトを持たないダミーコンテキストを返します。下のAnthonyWJonesのソリューションはこの制限の影響を受けず、問題を完全に解決します。 – RobD

答えて

2

私は、これは少し遅れているけど、私は同様の問題を持っていた、これは私のためにそれを解く:

スレッド:COM経由で+

http://forums.iis.net/t/1146404.aspx

概要Requestオブジェクトにアクセスする問題:オンに「許可しますCOM +コンポーネントの「IIS組み込みプロパティ」を参照してください。

+0

ああ!それは知っていることはとても良いことです。おかげでTom。 – RobD

+0

これはとても助けになりました!どうもありがとう! – Brandon

+1

これはちょっと後でありますが、Windows 2003ではこのプロパティにアクセスできないが、Windows 2012にあることがわかりました。ありがとう、Tom、この問題はナッツ(Yar! –

2

私は、IISでVB6コンポーネントを使用するCOM +のアプローチが少し薄れていることがわかりました。これをASPでインスタンス化したいVB6クラスに追加します:: -

Private moScriptCtx As ScriptingContext 

Public Sub OnStartPage(SC As ScriptingContext) 

    Set moScriptCtx = SC 

End Sub 

あなたは今moScriptCtxオブジェクトのプロパティとして要求、応答、サーバーなどにアクセスすることができます。

をあなたは最初の場所であなたがOnStartPageを呼び出す方法を不思議に思われるかもしれません。あなたは、ASPは、自動的にあなたのためのことをしないでくださいCreateObject実行中。

+0

絶対的な魔法!ありがとうございました! – RobD

関連する問題