基本上我们从IIS 5迁移到IIS 7,我试图通过在C#中重写它们来将一些旧的COM对象更新为.NET。到目前为止我所拥有的是一个经典ASP页面调用COM +对象,然后我试图在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");
}
}
}
有什么想法吗?感谢
答案 0 :(得分:2)
ASP.Net的Response.Redirect
使用ASP.Net堆栈,该堆栈未在ASP页面中使用。
您需要切换远离ASP或调用ASP的Response.Redirect
。
答案 1 :(得分:2)
HttpContext只能在ASP.NET设置的上下文中设置。由于您使用ASP classic进行调用,因此它不会绑定到实际的请求/响应流。
您应该做的是指示是否从COM +对象重定向,并调用经典ASP等效于重定向。