2010-03-22 3 views
0

Fondamentalement, nous sommes passés d'IIS 5 à IIS 7 et j'essaie de mettre à jour certains de nos anciens objets COM vers .NET en les réécrivant en C#. Ce que j'ai jusqu'ici est une page ASP classique appelant l'objet COM + puis j'essaye de faire une simple redirection au sein de l'objet COM + (c'est juste pour tester, ce n'est pas ce que l'objet fera finalement).Response.Redirect dans un objet COM + appelé à partir de ASP classique Page

Mon problème/question est, pourquoi l'appel de redirection ne fonctionne pas correctement? Est-ce que je fais quelque chose de mal ou ne pouvez-vous pas rediriger dans un objet COM +? Tout ce qui se passe est une page blanche vide apparaît et si je vérifie les journaux IIS, je ne vois pas d'erreurs.

Voici mon code à ce jour:
Dans ASP classique (l'appel à COM +)

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

code dans l'objet 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"); 
     } 
    } 
} 

Toutes les idées? Merci

+0

Autre part: La classe doit également étendre ServicedComponent. C'était un autre problème que j'ai rencontré. Donc, dans cet exemple BVSRegistration: ServicedComponent – ajdams

Répondre

2

Comme vous appelez depuis ASP classic, il ne sera pas lié au flux de requête/réponse réel.

Ce que vous devez faire est d'indiquer s'il faut ou non rediriger depuis votre objet COM +, et appeler l'ASP classique équivalent à Redirect.

+0

Ainsi, par exemple, renvoyer une chaîne avec le site que je voudrais potentiellement rediriger vers Response.Redirect (returnSite) en ASP classique? – ajdams

+0

Oui, exactement. :) – Randolpho

+1

Je l'ai compris, merci beaucoup pour votre aide à tous! – ajdams

2

Le Response.Redirect ASP.Net utilise la pile ASP.Net qui n'est pas utilisée dans une page ASP.

Vous devez soit abandonner ASP, soit appeler le Response.Redirect ASP. HttpContext ne sera défini que dans le contexte d'un paramètre ASP.NET.

Questions connexes