View Full Version : WebService
Boas
Alguem sabe trabalhar com XML Web Services?
O meu problema é com o namespace. Será possivel indicar o namespace dinamicamente?
É que eu gostaria de desenvolver um webservice igual para dois servidores diferentes. Se podesse dispensar de compilar o projecto com um namespace de um servidor e dps voltar a compilar para o outro servidor...
Indicar por exemplo num ficheiro web.config ou do genero
Rechousa 30-01-2006, 17:51 Olá !
Eu uso Web Services em .Net e podes indicar o URL do webService dinamicamente (penso que é isso que pretendes).
Vais ter que ter 2 projectos:
1) WebServices Project
2) ASP.Net Project (por exemplo)
Faz o seguinte:
1) Crias o teu WebService, podes usar um return "Hello World"; para testar.
2) No teu projecto ASP.Net vais adicionar uma WebReference (e apontas para o teu webService, exemplo: http://localhost/myWebService/Service1.asmx)
3) Edita as propriedades da WebReferencia criada e, em vez de ser estática, muda para dinâmica
4) Dá uma olhadela ao teu Web.Config. Vais ver que contém o URL do WebService ;)
Espero ter ajudado,
Abraço
Rechousa, não é isso k eu quero. eu refiro-me ao namespace k esta dentro do ficheiro asmx.vb k por defeito vem tempuri.org
Rechousa 01-02-2006, 16:26 Fonix....
Eu tenho webservices a correr em varios servidores e a build é sempre a mesma.
Eu costumo usar C# e funciona tudo na boa. O namespace nao tem nada que ver com o servidor.
Na pratica, qual é o erro que te acontece qdo tentas fazer o deploy de uma build noutro servidor ?
Abraço
Tuaregue 01-02-2006, 17:01 O rapaz não deve estar a registrar o namespace, posso estar a dizer uma grande barbarie, ou seja, o rapaz deve estar a usar um namespace do género
namespace xx
e depois o webservice deve estar com outro namespace, o que ele deve querer é como registar aquele namespace dentro do namespace xxx.
Tuareque, huh?! eu nem percebi o k querias dizer lol
É k eu quero o mm webservice a correr em dois servidores diferentes.
Exemplo:
servidor xxx e servidor yyy
respectivos namespace http://xxx/ e http://yyy/
E queria definir o nome do servidor dinamicamente, tipo num ficheiro de configuracao
O erro é k a aplicacao encontra o webservice de um mas nao de outro...
Mas o problema deve vir de outro lado (eu ja tinha a questao original antes de detectar o erro)
E ja agora k falamos em webservices, se quiser usa-lo num windows form e fazer atribuicao dinamica (tal cm o Rechousa falou no seu 1ºpost, m para win form) onde tenho k editar o endereço de referencia? app.config ou nome_aplicacao.exe.config??? ha algum sitio onde possa definir o local? é k ja me esteve a funcionar para os dois casos e para nenhum deles lol
Rechousa 01-02-2006, 18:09 Boas,
DnlCY, antes de mais, há que esclarecer algumas coisas:
- tens uma aplicação servidora e vários clientes em máquinas distintas, certo ?
- como estás a invocar o WebService ? Estás a utilizar a entrar existente no web.config ?
- estás a invocar os webServices das 2 máquinas imediatamente ? já experimentaste isoladamente ?
- no teu caso, nao é o servidor que comunica com os clientes, mas sim os clientes que comunicam com o servidor, certo ? (é sabido que poderás utilizar bi-direccionalidade se, no momento em que o cliente se regista no servidor, guardas o endereço do cliente (do lado do servidor) e, o servidor passa a conhecer tb mais este cliente que se ligou.
No caso de windows forms à partida seria no app.config.
Abraço
SoundSurfer 01-02-2006, 18:16 Olá !
Eu uso Web Services em .Net e podes indicar o URL do webService dinamicamente (penso que é isso que pretendes).
Vais ter que ter 2 projectos:
1) WebServices Project
2) ASP.Net Project (por exemplo)
Faz o seguinte:
1) Crias o teu WebService, podes usar um return "Hello World"; para testar.
2) No teu projecto ASP.Net vais adicionar uma WebReference (e apontas para o teu webService, exemplo: http://localhost/myWebService/Service1.asmx)
3) Edita as propriedades da WebReferencia criada e, em vez de ser estática, muda para dinâmica
4) Dá uma olhadela ao teu Web.Config. Vais ver que contém o URL do WebService ;)
Espero ter ajudado,
Abraço
Exacto... depois quando chamas o webService no código, vais às configurações buscar o endereço e colocas na propriedade correcta do webservice.
em relacao ao windows forms e pelos testes k aki tava a fazer parece-me mais o nome_aplicacao.exe.config, apesar de k qd crias o webreference ele cria-te no projecto o app.config...:P
em relacao a maquinas o k tenho é uma servidor de testes e um servidor permanente. E o webservice so funciona no servidor de testes:(
A invocação de webservice é atraves de uma aplicacao windows form do lado do cliente e serve so para enviar uma imagem para a base de dados do servidor
A ideia era nao ter k recompilar o codigo com novo namespace dependendo do servidor onde quero instalar
SoundSurfer 01-02-2006, 19:18 em relacao ao windows forms e pelos testes k aki tava a fazer parece-me mais o nome_aplicacao.exe.config, apesar de k qd crias o webreference ele cria-te no projecto o app.config...:P
em relacao a maquinas o k tenho é uma servidor de testes e um servidor permanente. E o webservice so funciona no servidor de testes:(
A invocação de webservice é atraves de uma aplicacao windows form do lado do cliente e serve so para enviar uma imagem para a base de dados do servidor
A ideia era nao ter k recompilar o codigo com novo namespace dependendo do servidor onde quero instalar
Não precisas de compilar de novo... no Visual Studio (se é isso que estás a utilizar) nas propriedades da WebReference metes "dinamico"... não te preocupes com o NameSpace...
Depois no código, só precisas de chamar por exemplo (C#):
this.webServiceURLs = ConfigurationSettings.AppSettings.Get("CacheWebServiceURLs").Split(';');
CacheManagerWebService.CacheManager cacheManager;
foreach(string url in this.webServiceURLs)
{
cacheManager = new CacheManager(url);
count += cacheManager.DeleteAllCache();
}
Neste caso tenho uma propriedade no web.config em que o seu valor é uma string com os URLs dos serviços separados por ";" .
|
|