Ir para conteúdo

POWERED BY:

Arquivado

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

Cazanova

Aplicacao 3 camadas

Recommended Posts

Pessaol sou aprendiz de C#,estou tentando fazer uma aplciacao 3 camadas, seguindo o modelo proposto nesse exemplo: http://www.macoratti.net/cshp_3c1.htm, porem estou tendo algumas dificuldades, se alguem puder me ajudar.

 

Copiei todo o exemplo, abaixo estão os códigos e estou tendo o seguinte erro.

Descrição: O aplicativo tentou executar uma operação não permitida pela diretiva de segurança. Para conceder a permissão necessária a esse aplicativo, entre em contato com o administrador do sistema ou altere o nível de confiança do aplicativo no arquivo de configuração. 

Detalhes da Exceção: System.Security.SecurityException: Falha na solicitação da permissão de tipo 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Erro de Origem: 

Exceção não tratada foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo. 

Rastreamento de Pilha: 


[SecurityException: Falha na solicitação da permissão de tipo 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.]
System.Reflection.Assembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase) +0
System.Web.UI.Util.GetTypeFromAssemblies(ICollection assemblies, String typeName, Boolean ignoreCase) +140
System.Web.UI.TemplateParser.GetType(String typeName, Boolean ignoreCase, Boolean throwOnError) +295
System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName, String codeFileBaseTypeName, String src, Assembly assembly) +163
System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData) +192




--------------------------------------------------------------------------------
Informações sobre a Versão: Microsoft .NET Framework Versão:2.0.50727.832; Versão do ASP.NET:2.0.50727.832
Abaixo segue o script.

 

ARQUIVO DAL.cs -> Macoratti.DAL.dll

using System;
using System.Data;
using System.Data.SqlClient;

namespace Macoratti.DAL
{
	public class CamadaAcessoDados
	{
		private string connectionString="Server=SERVER;Database=BASE-NAME;Uid=USUARIO;Pwd=SENHA;";
		
		public DataSet RetornaDataSet(string Sql)
		{
			SqlConnection conn=new SqlConnection(connectionString);
			SqlDataAdapter adp=new SqlDataAdapter(Sql, conn);
			DataSet ds=new DataSet();
			adp.Fill(ds);
			conn.Close();
			return ds;
		}
	}
}

ARQUIVO BLL.cs -> Macoratti.BLL.dll

using System;
using System.Data;
using Macoratti.DAL;

namespace Macoratti.BLL
{
	public class CamadaLogicaNegocios
	{		
		public DataSet ObtemClientes()
		{
			CamadaAcessoDados dal=new CamadaAcessoDados();
			return dal.RetornaDataSet("SELECT * FROM cms_conteudos");
		}
	}
}

ARQUIVO PL.cs -> Macoratti.PL.dll

using System;
using Macoratti.BLL;

namespace Macoratti.PL
{
	public class CamadaApresentacao:System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.DataGrid meuGrid;
		
		private void Page_Load(object sender, System.EventArgs e)
		{
			meuGrid.DataSource = new CamadaLogicaNegocios().ObtemClientes();
			meuGrid.DataBind();
		}
		override protected void OnInit (EventArgs e)
		{
			InitializeComponent();
			base.OnInit(e);
		}
	}
}

ARQUIVO Index.aspx

<%@ Page Language="C#" Codebehind="PL.cs" AutoEventWireup="false" Inherits="Macoratti.PL.CamadaApresentacao" %>

<html>
	<head>
		<title>Aplicacao 3 camadas</title>
	</head>
	<body>
			<asp:Datagrid id="meuGrid" runat="server" ></asp:Datagrid>
	</body>
</html>

No arquivo PL.cs tive que remover o InitializeComponent(); pois ao compilar dava sempre o erro "CS1003: InitializeComponent não existe no contexto. Então executei e gerei o DLL sem ele.

 

No IIS coloquei as DLLs dentro da pasta Bin dentro do Root. Ta dando sempre erro.

 

Estrutura de pastas:

  • Cms
    • Bin
    • DLLs
  • Index.aspx
Se alguem puder me dar uma luz, agradesço.

 

Valeu, Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae Cazanova, cara não analisei o código em si, mas poste o erro que fica mais fácil pois estou acessando sua aplicação e não tem permissão para mostrar o erro, só quem estiver logado na máquina consegue ver o erro, a não ser que você mude esta propriedade também.

Mas é mais fácil você postar o erro.

 

Falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descrição: O aplicativo tentou executar uma operação não permitida pela diretiva de segurança. Para conceder a permissão necessária a esse aplicativo, entre em contato com o administrador do sistema ou altere o nível de confiança do aplicativo no arquivo de configuração.

 

Detalhes da Exceção: System.Security.SecurityException: Falha na solicitação da permissão de tipo 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

 

Erro de Origem:

 

Exceção não tratada foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo.

 

Rastreamento de Pilha:

 

 

[securityException: Falha na solicitação da permissão de tipo 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.]

System.Reflection.Assembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase) +0

System.Web.UI.Util.GetTypeFromAssemblies(ICollection assemblies, String typeName, Boolean ignoreCase) +140

System.Web.UI.TemplateParser.GetType(String typeName, Boolean ignoreCase, Boolean throwOnError) +295

System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName, String codeFileBaseTypeName, String src, Assembly assembly) +163

System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData) +192

 

 

 

 

--------------------------------------------------------------------------------

Informações sobre a Versão: Microsoft .NET Framework Versão:2.0.50727.832; Versão do ASP.NET:2.0.50727.832

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! Acredito que faltou incluir as referencias nos projetos...

 

Na janela Solution Explorer, clique com botão direito sobre o projeto da Web, escolha Add Reference... e adicione o projeto PL

Faça o mesmo com os projetos:

BLL, adicione o DAL

PL, adicione o BLL e System.Web

 

Pronto! só compilar e rodar!.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Célio,

 

Gero as 3 DLLs nesta ordem.

1) csc /target:library /out:Macoratti.DAL.dll /r:System.Data.dll DAL.cs

2) csc /target:library /out:Macoratti.BLL.dll /r:System.Data.dll,Macoratti.DAL.dll BLL.cs

3) csc /target:library /out:Macoratti.PL.dll /r:System.Data.dll,Macoratti.BLL.dll PL.cs

 

Ao gerar o último da o seguinte erro: PL.cs <17,13> error CS0103: Nome ´InitializeComponent´ não existe no contexto atual.

 

Não consigo identificar onde estou errando...

Se puderes me dar um help.

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, estou com o mesmo problema, Cazanova, conseguiu a solucao ?

 

Att.

 

 

Olá Célio,

 

Gero as 3 DLLs nesta ordem.

1) csc /target:library /out:Macoratti.DAL.dll /r:System.Data.dll DAL.cs

2) csc /target:library /out:Macoratti.BLL.dll /r:System.Data.dll,Macoratti.DAL.dll BLL.cs

3) csc /target:library /out:Macoratti.PL.dll /r:System.Data.dll,Macoratti.BLL.dll PL.cs

 

Ao gerar o último da o seguinte erro: PL.cs <17,13> error CS0103: Nome ´InitializeComponent´ não existe no contexto atual.

 

Não consigo identificar onde estou errando...

Se puderes me dar um help.

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlos, seja bem vindo ao Fórum iMasters, de uma olhada em nossas regras: Regras do Fórum iMasters

 

Este tópico é de 2007. Era mais viável que você abrir seu tópico com sua dúvida do que "resucitar" este tópico.

 

Abraços...

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.