ERRO AO ABRIR LOCALHOST

KERPLUNK 26/09/2016 12:31:43
#467494
Agora entra a principal diferença de aplicações Web e aplicações Desktop. Em uma aplicação Web, o [Ô]executável[Ô] não existe, é o IIS que faz rodar a aplicação, portanto Application.StartupPath, vai retornar o caminho do IIS, onde ele está instalado. Então você precisa pegar o local em que está seu assembly, para isso, use Reflection:

System.Reflection.Assembly.GetExecutingAssembly().Location
PERCIFILHO 26/09/2016 13:25:48
#467503
Me desculpe, Kerplunk, porém só consegui colocando o caminho completo na string de conexão;
Esse comando que você me passou retorna:
c:\users\....................\Pet\Bin\Debug\Pet.exe
Como faço para retornar sem o nome do executável?
KERPLUNK 26/09/2016 13:44:16
#467506
PERCIFILHO 26/09/2016 14:23:22
#467513
Kerplunk, eu devo estar fazendo alguma coisa errada (com certeza, né?)
Me diz uma coisa: a minha string de conexão está localizada na minha classe BackWork, da aplicação Desktop.
Conexão com banco de dados Sql Server Compact 4.0.
public static string conn = [Ô]DataSource=[Ô] + Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + [Ô]\\Pet.sdf[Ô];

Depurando, o caminho que a aplicação retorna é:
C:\\Users\\Maquina01\\Desktop\\Estudo\\Pet\\bin\\Debug\\Pet.sdf ][Ô]
Quando rodo a aplicação Desktop, funciona perfeitamente assim.
Mas, se eu rodar a minha WebApi, não funciona. O browser mostra a mensagem de banco de dados não encontrado.
Depurando, vi que o caminho que a WebApi está tentando encontrar o banco de dados é:
C:\\Users\\Maquina1\\AppData\\Local\\Temp\\Temporary ASP.NET Files\\vs\\e8eedde1\\7613986d\\assembly\\dl3\\b651d0aa\\831fabfd_1818d201\\Pet.sdf ][Ô]
Tudo bem que isso é apenas um teste, para eu aprender, mas gostaria de fazer funcionar da maneira correta.
Estou fazendo os testes seguindo seu vídeos, e está funcionando legalzinho, só que coloquei o caminho completo na string da conexão, mas creio que não seja a maneira correta. Please, help me!
KERPLUNK 26/09/2016 15:20:04
#467517
O que está acontecendo:
Uma aplicação web(o que inclui uma WebAPI), roda sendo [Ô]chamada[Ô] pelo IIS. Quando você roda em modo de depuração(à partir do Visual Studio), é criado um [Ô]ambiente para testes[Ô], contendo uma instância do IIS-Express(que roda em uma porta local) e usa uma pasta temporária, que é o caminho que você está vendo. Então basta colocar seu banco de dados neste caminho e sua aplicação deve funcionar normalmente. Quando você faz o deploy dessa aplicação para o IIS mesmo, então as coisas ficam mais fáceis, pois o caminho é sempre o mesmo, bastando colocar o banco de dados lá(para seu caso).
PERCIFILHO 26/09/2016 15:44:44
#467521
Ah, entendi. Então como é só para testes, vou deixar assim mesmo, por enquanto.
Depois quando eu aprender a publicar no IIS, aí eu corrijo isso.
Valeu, muito abrigado.
Página 2 de 2 [16 registro(s)]
Tópico encerrado , respostas não são mais permitidas