Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Douglas W.

Problemas com httpModules

Recommended Posts

Galera estou com uma dúvida f***... seguinte eu estou criando um projeto com base nesse artigo http://imasters.com.br/artigo/5682/asp...rls_pra_web_20/, bem consegui criar e tals... ficou show, no visual studio roda certinho quando eu acesso o endereço http://endereço/produto/10 ele acessa a página _Produto.aspx belezera imprimi oque tem que imprimir... mais qdo eu publico no IIS e tento acessar http://endereço/produto/10 essa funcionalidade não funciona :S.. parece que ele não passa no httpModules que eu criei e tenta acessar a pasta produto/10... Já tentei bastante coisas mais não consegui acertar isso...

web.config
<httpModules>
<add type="ProfessionalComputing.goUrl,ProfessionalComputing" name="goUrl" />
</httpModules>
Projeto ProfessionalComputing

 

arquivo VerificaUrl.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace ProfessionalComputing.Util
{
	public class VerificaUrl
	{
		public static void CheckUrl(HttpApplication app)
		{
			string origem = app.Request.Path.ToString().ToLower();
			string urlsite = app.Request.ApplicationPath;
			if (origem.IndexOf("produto") > -1)
			{
				string[] parametros = origem.Split('/');
				string codigo = parametros[2]; // você pode obtem na string origem
				app.Context.RewritePath(urlsite + "/_Produto.aspx?codigo=" + codigo);
			}
		}
	}
}
arquivo goUrl.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace ProfessionalComputing
{

	public class goUrl : IHttpModule
	{

		public virtual void Init(HttpApplication app)
		{
			app.BeginRequest += new EventHandler(this.Rewrite_BeginRequest);
		}

		public void Rewrite_BeginRequest(object s, EventArgs e)
		{
			try
			{
				ProfessionalComputing.Util.VerificaUrl.CheckUrl(((HttpApplication)s));
			}
			catch (Exception exception1)
			{
				throw new Exception("Falha tratando url");
			}
		}
		#region IHttpModule Members

		public virtual void Dispose()
		{

		}

		#endregion
	}

}
Projeto do site

 

arquivo _Produto.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Produto : System.Web.UI.Page
{
	protected void Page_Load(object sender, EventArgs e)
	{
		if (Request.QueryString["codigo"] != null)
			Response.Write(Request.QueryString["codigo"].ToString());
	}
}

Segue o endereço ara baixar o projeto que eu fiz, se alguém puder me ajudar eu agraceço

 

http://www.webtraining.com.br/Projeto.zip

 

Valeu pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho local dar certo e na web não, mas fiz o download do seu projeto, mas tem dois projetos no arquivo zip, testei o WebSite4, mas quando digitei produto/10 ele mostrou produto na tela. Acho que não é bem isso ou é isso mesmo?

No projeto publicados as DLL's estão na pasta bin?

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho local dar certo e na web não, mas fiz o download do seu projeto, mas tem dois projetos no arquivo zip, testei o WebSite4, mas quando digitei produto/10 ele mostrou produto na tela. Acho que não é bem isso ou é isso mesmo?

No projeto publicados as DLL's estão na pasta bin?

 

Abraços...

Então é o seguinte... na verdade era para mostrar o código mais está com um erro de lógica ai que ele ta passando como parâmetro a string produto ao invés do código informado... mais quanto a isso beleza... o problema é não funcionar na WEB, qdo rodo no IIS nem produto ele mostra na tela..

 

O projeto é o seguinte o projeto website4 é o site e o ProfessionalComputing são as classes que tratam o http...

 

Todas as Dll's estão na pasta bin do projeto publicado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.