WebService

DnlCY

Power Member
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
 
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
 
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
 
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

Código:
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
 
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
 
Última edição:
Rechousa disse:
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
 
DnlCY disse:
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#):

Código:
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 ";" .
 
Última edição:
Back
Topo