0


0

従来のASPページから呼び出されたCOM +オブジェクトでのResponse.Redirect

基本的に、IIS 5からIIS 7に移行し、古いCOMオブジェクトの一部をC#で書き換えて.NETに更新しようとしています。 私がこれまでに持っているのは、COM +オブジェクトを呼び出すクラシックASPページで、COM +オブジェクト内で単純なリダイレクトを実行しようとしています(これはテスト目的のためであり、オブジェクトが最終的に実行するものではありません)。

私の問題/質問は、リダイレクト呼び出しが正しく機能しないのはなぜですか? 私は何か間違っているのですか、COM +オブジェクト内でリダイレクトできませんか? 発生するのは空白の白いページが表示されるだけで、IISログを確認してもエラーは表示されません。

これまでの私のコードは次のとおりです。+ Classic ASP(COM +の呼び出し)

Set oBankReg = CreateObject("BVSRegistration.SignIn")
oBankReg.GetBankId(bankid)

C#COMオブジェクトのコード:

using System;
using System.Web;
using System.Text;
using System.EnterpriseServices;
using System.Collections.Generic;
using System.Runtime.InteropServices;

[assembly: ApplicationName("BVSRegistration")]
[assembly: Description("COM+ upgrade of the BVSRegistration VB6 SignIn.cls.")]
[assembly: ApplicationActivation(ActivationOption.Server)]
[assembly: ApplicationAccessControl(false, AccessChecksLevel = AccessChecksLevelOption.ApplicationComponent)]

namespace BVSRegistration
{
    public class SignIn : ServicedComponent
    {
        public void GetBankId(string bankid)
        {
            HttpContext.Current.Response.Redirect("http://www.google.com");
        }
    }
}

何か案は? ありがとう

2 Answer


2


ASP.Netの「Response.Redirect」は、ASPページで使用されていないASP.Netスタックを使用します。

ASPから切り替えるか、ASPの `Response.Redirect`を呼び出す必要があります。


2


HttpContextは、ASP.NET設定のコンテキストでのみ設定されます。 ASPクラシックから呼び出しているため、実際の要求/応答ストリームにバインドされません。

行うべきことは、COM +オブジェクトからリダイレクトするかどうかを示し、リダイレクトに相当する従来のASPを呼び出すことです。