Pergunta

Temos vários aplicativos ASP.NET que usam um sitemap que é preenchido por meio de uma implementação do VB.NET do exemplo sqlsitemaprovider encontrado em Código perverso. Ele é compilado em uma DLL, depois instalado e referenciado no GAC nos servidores e também a partir de nossos locais. Ele trabalha em produção muito bem há alguns meses. Eu também devo observar que estamos usando o SQL Server 2008

Hoje entramos e notamos na produção que não havia itens de menu sendo exibidos no sitemap no Prod para qualquer um dos aplicativos. Dev & Qa pareciam bem. Não fizemos nenhuma manutenção ao SQL Server no Prod há algum tempo, muito antes de implementarmos o SQLSItemApprovider. Também não temos atualizado nenhum dos aplicativos da Web recentemente.

A primeira coisa que fiz foi pegar o Prod Web.config e defini -lo no meu web.config no meu IDE e executar o aplicativo - ainda é o mesmo problema. Isso deve descartar um problema do IIS, pois o bug foi replicado na minha máquina também.

Como isso foi um pouco urgente, a próxima coisa que fiz foi simplesmente inserir um disco dummy na tabela de mapa do site no Prod para ver o que aconteceria. Poof, como mágica, os itens do menu foram restaurados e tudo estava bem. Excluí o item do menu fictício e ele sincronizou sem problemas.

Isso foi um pouco assustador, e estou tentando descobrir por que isso aconteceu para que isso não aconteça novamente no futuro. Alguém já experimentou isso antes? Se você nunca usou o sqlsitemaprovider - ele simplesmente usa o cache sqldEpendencycache/ asp.net para armazenar os itens do menu, se o conjunto de resultados do Proc armazenado que retorna os links alterações, ele diz ao ASP.NET que isso aconteceu e re -popula o Sitemap/cache ...

Talvez a conexão entre o servidor da web e o servidor SQL de alguma forma tenha morrido? E inserir um registro fez 'acordar' e se reconectar novamente? Talvez haja um valor de tempo limite ou algum tipo de função isStillConnected () em algum lugar que eu preciso verificar no Pageload para garantir que a conexão ainda esteja no tacto? Ou talvez asp.net pensassem que o PROC armazenado não estava retornando valores por algum motivo até que inserimos um registro na tabela? Alguém já viu esse problema antes?

Muito obrigado antecipadamente por qualquer orientação.

EDIT: Tudo isso veio de ter um conjunto definido no meu Proc armazenado. CUIDADO! Isso não está nos documentos do MSDN em nenhum lugar e realmente me ferrou por um tempo!

Foi útil?

Solução 2

Verifique minha edição;)

Tudo isso veio de ter um cenário no meu Proc armazenado. CUIDADO! Isso não está nos documentos do MSDN em nenhum lugar e realmente me ferrou por um tempo!

Outras dicas

O SQLDEPENDENCE não é exatamente uma potência de estabilidade. Aqui estão alguns artigos que talvez possam lançar alguma luz:

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