Pergunta

Olá, estamos desenvolvendo um aplicativo de vários inquilinos no ASP.NET com banco de dados separado para cada inquilino, no qual um dos requisitos é monitorar o uso da largura de banda para cada inquilino,

Eu tentei pesquisar, mas não encontrei muita ajuda no tópico, queremos monitorar exatamente quanta largura de banda está sendo usada para cada inquilino, enquanto cada inquilino pode ter seu próprio domínio de nível superior ou um sub domínio ou uma combinação de ambos.

Então, quais são as opções disponíveis, as que eu consigo pensar podem ser

  1. O monitoramento do log do IIS significa um aplicativo separado que calculará a largura de banda para cada inquilino.
  2. Logre cada solicitação e resposta para um inquilino de dentro do aplicativo e calcule o uso total da largura de banda com base nisso.
  3. Use alguns componentes de terceiros, se disponível

Então, o que você acha que será a melhor abordagem, também se houver outra maneira de fazer isso.

Foi útil?

Solução

Ok, aqui está uma ideia (que eu não testei, deixe isso para você)

Sobre global.asax Use uma desta função (encontre a que possui um tamanho final válido)

Application_PostRequestHandlerExecute
Application_ReleaseRequestState

e obtenha o tamanho que você enviou

Response.Filter.Length

Não há necessidade de meção, que você obtém o nome do arquivo da chamada usando o

HttpContext.Current.Request.Path

Essas funções são chamadas a cada solicitação, para que você possa obter seu tamanho e fazer o resto.

Aqui deve observar que você precisa primeiro testar essa idéia para ver se é o trabalho, e talvez melhorá -lo, e tenha no meu que, se você tiver compactar as páginas no servidor, o comprimento não é o correto e talvez você precise comprimi -lo Global.asax para ter o realmente lenght.

Espero que isso ajude.

Outras dicas

Você pode usar a Web Part Core Search Results - Isso funcionará em toda a fazenda em oposição a um CQWP que é restrito a uma coleção de sites - mas eu encontro os resultados da pesquisa mais difícil para formatar que o CQWP.

No SPD também é possível mesclar fontes de dados - ou seja, listas.Um exemplo é https://www.nothingbutsharepoint.com/sites/eusp/pages/How-To -Link-Two-lists-and-Create-A-Ambinado-view-in-sharepoint-2010.aspx .Neste caso, você seria capaz de usar um DVWP.

Tentar segmentar o tráfego com base no host é difícil na minha experiência. Em vez disso, se você fornecer a cada inquilino seus próprios IPs para os aplicativos, poderá encontrar programas que monitorem a largura de banda com base no IP.

ADIÇÃO A estrutura do IIS é que você tem um site para governá -los todos para todos os inquilinos e fazer login os garfos do sistema no banco de dados adequado? Nesse caso, isso pode criar problemas com relação à versão, pois todos os sites do inquilino terão que ter exatamente o mesmo esquema e todos precisariam ser atualizados simultaneamente quando você atualizar o aplicativo de modo que uma mudança de esquema seja necessária.

Outra estrutura, que parece o que você pode ter, é que cada inquilino tem seu próprio site como assim:

tenant1_site/appvirtualdir
tenant2_site/appvirtualdir
...

Onde o appvirtualdir aponta para o mesmo caminho físico para todos os sites do inquilino. Quando todos os clientes têm a mesma versão do aplicativo, todos estão usando literalmente o mesmo código. Se você tem esse cenário e algum tipo de autenticação, precisará de um IP por inquilino por causa do SSL. O SSL só se vinculará ao IP e à porta, diferentemente do não-SSL, que se vinculará a IP, porta e host. Se fosse esse o caso, o monitoramento do tráfego com base no IP ainda será mais simples e mais preciso, pois pode ser feito no roteador ou através de um monitor de rede.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top