Artigo: 952883 - Última revisão: quarta-feira, 4 de Agosto de 2010 - Revisão: 1.0

Correcção: O tipo de retorno ou o argumento da saída de um método de serviço ASMX que inclui uma propriedade que tenha uma setter interno não pode ser serializado num computador que tem o.NET Framework instalado

Está disponível transferência de hotfixDisponível transferência de hotfix
Ver e solicitar transferências de hotfix
Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sintomas

Considere o seguinte cenário. Tem um computador com o Microsoft .NET Framework 2. 0 Service Pack 2 (SP2) ou o .NET Framework 3. 5 SP1 instalado. Utilizar um método de serviço ASMX que inclui uma propriedade e a propriedade tem um setter interno. A serialização poderá falhar. Este problema ocorre num cenário semelhante ao seguinte:
  • Tipo de público T inclui uma propriedade pública que tem uma getter pública e uma setter interno. Por exemplo, o código de origem poderá ser semelhante ao seguinte.
    public class T
    {
                    ?
                    public <Type> <Propertyname1> { get; internal set; }
                    ?
    }
    
  • Escreva na Web de um serviço, o tipo de retorno ou a saída de argumento de pelo menos um método de serviço Web devolve objectos de T ou objectos que contêm T nos respectivos gráficos do objecto. Por exemplo, o código de origem poderão ser semelhantes um dos seguintes exemplos.
    • public T MyWebMethod(?)
      {
                      ?
      }
      
    • public void MyWebMethod(?, out U)
      {
                      ?
      }
      ...
      public Class U
      {
                      public T <Propertyname2>  { get; set; }
      }
  • Tipo T ou tipo U não é utilizado qualquer método de serviço Web como um argumento não fora-apenas.

    NotaSe um método tiver mais do que uma saída argumento, os argumentos de saída são denominados argumentos não fora-apenas.
  • O tipo de propriedade que tenha uma setter interno não éVastoouColecção.
  • Antes de aplicar o .NET Framework 2. 0 SP2 ou o .NET Framework 3. 5 SP1, gerado código de proxy para o serviço da Web anteriormente mencionado, utilizando a ferramenta Wsdl.exe ou funcionalidade de referência Web adicionar do Visual Studio.
  • Depois de implementado o serviço Web e os clientes, aplicou o .NET Framework 2. 0 SP2 ou o .NET Framework 3. 5 SP1.
Não será possível serializar o tipo de retorno ou o argumento fora do método de serviço Web anteriormente mencionado neste cenário. Este método de serviço Web é um objecto de tipo T ou um objecto que contém T no respectivo objecto gráficos.

NotaActualmente, não existe nenhum pacote separado para o .NET Framework 2. 0 SP2. O .NET Framework 2. 0 SP2 está incluído no pacote para o .NET Framework 3. 5 SP1.

Resolução

Informações sobre substituição de correcções

a correcção que corresponde ao KB952883 foi substituído com a correcção KB976814, que contém todas as correcções que foram anteriormente incluídas no KB952883. Deve utilizar a correcção KB976814 para corrigir os problemas descritos nos KB952883. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
976814  (http://support.microsoft.com/kb/976814/ ) Correcção: uma excepção System.InvalidOperationException ocorre quando utiliza um proxy de cliente WCF gerado pela ferramenta ServiceModel metadados utilitário de metadados de serviço que se encontra no .NET Framework 3. 5

Ponto Da Situação

A Microsoft confirmou que este é um problema dos produtos da Microsoft listados na secção "Aplica-se a".

Referências

Para mais informações sobre a terminologia de actualizações de software, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
824684  (http://support.microsoft.com/kb/824684/ ) Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 2.0
  • Microsoft .NET Framework 3.5
Palavras-chave: 
kbautohotfix kbexpertiseadvanced kbfix kbqfe kbmt KB952883 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 952883  (http://support.microsoft.com/kb/952883/en-us/ )