Galerato com um problema que ta me matando dos nervos aqui, eu instalei o tg98SE (topograph 98 second edition) mas o problema que quando eu vou iniciar o problema ocorre o seguinte erro : " Erro ao acessar o plugue"
Cdigo de Erro: -
2147220956
Mensagem de erro: a converso no pde ser concluda porque o DataTime fornecido no tinha a propriedade Kind definida corretamente. Por exemplo, quando a propriedade Kind DateTimeKind.Local, o fuso horrio de origem deve ser TimeZoneInfo.Local.
Esse erro pode ocorrer durante uma TimeZoneInfo.ConvertTimeToUtc(DateTime, TimeZoneInfo) chamada no cdigo plug-in para converter um DateTime valor no fuso horrio de Santiago ou Volgogrado em UTC (Horrio Universal Coordenado).
Esse erro significa simplesmente que o processo de trabalho que executa o cdigo de plug-in falhou. Seu plug-in pode ser o motivo do acidente, mas tambm pode ser outro plug-in em execuo simultaneamente para sua organizao. Como o processo falhou, no podemos extrair mais informaes especficas sobre por que ele falhou. Mas depois de examinar dados dos despejos de falha aps o fato, descobrimos que esse erro geralmente ocorre devido a um dos quatro motivos:
Ao gravar um plug-in, voc deve tentar antecipar quais operaes podem falhar e envolv-las em um bloco de captura de tentativa. Quando ocorrer um erro, voc deve usar a InvalidPluginExecutionException classe para encerrar a operao com um erro significativo para o usurio.
Um cenrio comum para essa exceo ao usar o mtodo HttpClient.SendAsync ou HttpClient.GetAsync . Esses mtodos HttpClient so operaes assncronas que retornam uma Tarefa. Para trabalhar em um plug-in em que o cdigo precisa ser sncrono, as pessoas podem usar o TResult> da Tarefa de Tarefa
O exemplo a seguir mostra a maneira correta de gerenciar a exceo e uma chamada de sada usando o mtodo HttpClient.GetAsync . Esse plug-in tenta obter o texto de resposta de um conjunto de Uri na configurao no seguro para uma etapa registrada para ele.
Voc no deve usar padres de execuo paralelos em plug-ins. Esse anti-padro chamado no artigo de prtica recomendada: no use a execuo paralela dentro de plug-ins e atividades de fluxo de trabalho. O uso desses padres pode causar problemas ao gerenciar a transao em um plug-in sncrono. No entanto, outro motivo para no usar esses padres que qualquer trabalho feito fora de um try/catch bloco em um delegado de thread pode travar o processo de trabalho.
No passado, a obteno do rastreamento de pilha ou outras informaes de execuo para excees de plug-in no tratadas do processo de trabalho acidentado era impossvel. No entanto, o Dataverse agora oferece suporte para falhas de execuo de log no Application Insights. Para habilitar essa funo, voc pode vincular o Application Insights ao ambiente em que o plug-in est registrado. Depois de vinculado, o registro em log de falhas de plug-in ocorre automaticamente.
Por exemplo, uma chamada recursiva sem uma condio de trmino ou uma condio de trmino, que no abrange todos os cenrios, pode fazer com que esse erro ocorra. Para obter mais informaes, confira Observaes da classe > StackOverflowException.
O cdigo plug-in a seguir causa uma StackOverflowException devido a uma chamada recursiva sem limites. Apesar do uso do rastreamento e da tentativa de capturar o erro, o rastreamento e o erro no so retornados porque o processo de trabalho que os processaria foi encerrado.
Cada processo de trabalho tem uma quantidade finita de memria. H condies em que vrias operaes simultneas que incluem grandes quantidades de dados podem exceder a memria disponvel e fazer com que o trabalho do processo falhe.
O cenrio comum, nesse caso, quando um plug-in executado para uma RetrieveMultiple operao em que a solicitao inclui dados de arquivo. Por exemplo, ao recuperar emails que incluem anexos de arquivo. A quantidade de dados que podem ser retornados em uma consulta como essa imprevisvel porque qualquer email pode estar relacionado a qualquer nmero de anexos de arquivo, e os anexos podem variar de tamanho.
Quando vrias solicitaes de natureza semelhante esto sendo executadas simultaneamente, a quantidade de memria necessria torna-se grande. Se a quantidade de memria exceder o limite, o processo falhar. A chave para evitar essa situao limitar RetrieveMultiple consultas que incluem entidades com anexos de arquivo relacionados. Recupere os registros usando RetrieveMultiple, mas recupere todos os arquivos relacionados conforme necessrio usando operaes individuais Retrieve .
Um cenrio menos comum onde o cdigo no plug-in est vazando memria. Essa situao pode ocorrer quando o plug-in no escrito como sem estado, o que outra prtica recomendada. Para obter mais informaes, consulte Desenvolver implementaes do Plug-in como sem estado. Quando o plug-in no sem estado e h uma tentativa de adicionar continuamente dados a uma propriedade com estado como uma matriz, a quantidade de dados aumenta at o ponto em que ele usa toda a memria disponvel.
Mensagem de erro: o cdigo ISV reduziu a contagem de transaes abertas. Os plug-ins personalizados no devem capturar excees de chamadas do OrganizationService e continuar o processamento.
Mensagem de erro: no h nenhuma transao ativa. Esse erro geralmente causado por plug-ins personalizados que ignoram erros de chamadas de servio e continuam o processamento.
O erro superior foi adicionado mais recentemente. Ela deve ocorrer imediatamente e no contexto do plug-in que contm o problema. O erro inferior ainda pode ocorrer em circunstncias diferentes, normalmente envolvendo atividades personalizadas de fluxo de trabalho. Pode ser devido a problemas em outro plug-in.
Uma causa comum que um desenvolvedor acredita que pode tentar executar uma operao que possa ter xito, para que eles encerrem essa operao em um try/catch bloco e tentem engolir o erro quando ele falhar.
Embora esse padro possa funcionar para um aplicativo cliente, dentro da execuo de um plug-in, qualquer falha na operao de dados resulta na reverso de toda a transao. Voc no pode engolir o erro, portanto, voc deve ter certeza de sempre retornar um InvalidPluginExecutionException.
A causa mais comum para um erro de tempo limite do SQL que a operao est aguardando recursos bloqueados por outra transao SQL. O erro o resultado do Dataverse que protege a integridade dos dados e de solicitaes de longa execuo que afetam o desempenho dos usurios.
O bloqueio pode ser devido a outras operaes simultneas. Seu cdigo pode funcionar bem isoladamente em um ambiente de teste e ainda ser suscetvel a condies que s ocorrem quando vrios usurios esto iniciando a lgica em seu plug-in.
Determinadas aes que voc faz no plug-in, como atribuir ou excluir um registro, podem iniciar operaes em cascata em registros relacionados. Essas aes podem aplicar bloqueios em registros relacionados, fazendo com que as operaes de dados subsequentes sejam bloqueadas, o que, por sua vez, pode levar a um tempo limite de SQL.
Em um aplicativo cliente, voc pode desabilitar comandos que os usurios no tm permisso para executar. Dentro de um plug-in, voc no tem essa capacidade. Seu cdigo pode incluir alguma automao que o usurio de chamada no tem os privilgios a serem executados.
Voc pode registrar o plug-in para ser executado no contexto de um usurio conhecido por ter os privilgios corretos definindo o valor Executar no Contexto do Usurio para esse usurio. Ou voc pode executar a operao se passando por outro usurio. Para saber mais, veja:
Mensagem de erro: System.ServiceModel.FaultException'1[Microsoft.Xrm.Sdk.OrganizationServiceFault]: O usurio com SystemUserId= em OrganizationContext= est desabilitado. Usurios desabilitados no podem acessar o sistema. Considere habilitar esse usurio. Alm disso, os usurios sero desabilitados se no tiverem uma licena atribuda a eles.
O limite ajuda a garantir que os usurios que executam aplicativos no possam interferir uns com os outros com base em restries de recurso. O limite ajuda a fornecer um nvel de proteo contra cargas de mensagens extraordinariamente grandes que ameaam as caractersticas de disponibilidade e desempenho da plataforma Dataverse.
116,85 MB so grandes o suficiente para que seja raro encontrar esse caso. A situao mais provvel em que esse caso pode ocorrer quando voc recupera um registro com vrios registros relacionados que incluem arquivos binrios grandes.
O Dataverse usa frequentemente classes derivadas da classe abstrata DataCollection que representa uma coleo de chaves e valores. Por exemplo, com plug-ins, a IExecutionContextpropriedade .InputParameters derivada ParameterCollection da DataCollection classe. Essas classes so essencialmente objetos de dicionrio em que voc acessa um valor especfico usando o nome da chave.
Esse erro ocorre quando o valor da chave no cdigo no existe na coleo. O resultado um erro em tempo de execuo, em vez de um erro de plataforma. Quando esse erro ocorre dentro de um plug-in, o cdigo de erro depende se o erro foi capturado.
Em tempo de execuo, o erro frequentemente devido ao desenvolvedor supondo que o valor esteja presente quando no est. Por exemplo, em um plug-in registrado para a atualizao de uma tabela, somente os valores alterados so includos na Entitycoleo .Attributes
Alguns desenvolvedores usam o Entitymtodo .GetAttributeValue(String) para evitar esse erro ao acessar uma coluna de tabela. Esse mtodo retornar o valor padro do tipo se a coluna no existir. Se o valor padro for nulo, esse mtodo funcionar conforme o esperado. Mas se o valor padro no retornar nulo, como com um DateTime, o valor retornado ser 1/1/0001 00:00 em vez de nulo.
Os plug-ins destinam-se a dar suporte lgica de negcios. No h suporte para modificar qualquer parte do esquema de dados em um plug-in sncrono. Essas operaes geralmente demoram mais e podem fazer com que os metadados armazenados em cache usados pelos aplicativos fiquem fora de sincronizao. No entanto, essas operaes podem ser executadas em uma etapa de plug-in registrada para serem executadas de forma assncrona.
3a8082e126