ID do artigo: 936759 - Última revisão: quinta-feira, 1 de maio de 2008 - Revisão: 2.2

Notificações por email para alertas não são enviadas quando conteúdo em uma lista migrada ou em uma biblioteca de documentos migrado é alterado após você executar uma migração de banco de dados para atualizar para o Windows SharePoint Services 3.0

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.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Considere o seguinte cenário. Você executar uma migração de banco de dados para atualizar o Microsoft Windows SharePoint Services 2.0 para o Microsoft Windows SharePoint Services 3.0. Para fazer isso, você implantar o Windows SharePoint Services 3.0. Em seguida, adicione os bancos de dados de conteúdo ao aplicativos da Web no novo ambiente Windows SharePoint Services 3.0.

No entanto, após a migração, Windows SharePoint Services 3.0 não envia notificações por email quando conteúdo é alterado em uma lista migrada ou em uma biblioteca de documentos migrado. Os usuários os seguintes sintomas:
  • Os usuários não recebem notificações por email para alertas existentes para obter uma lista ou para uma biblioteca de documentos que foi migrada do Windows SharePoint Services 2.0.
  • Os usuários não recebem notificações por email para novos alertas criarem para obter uma lista ou para uma biblioteca de documentos que foi migrada do Windows SharePoint Services 2.0. Para receber notificações por email, o usuário deve primeiro excluir o alerta existente. Em seguida, o usuário deve criar um novo alerta.
Além disso, se você ativar rastreamento detalhado, uma mensagem de erro semelhante à seguinte é registrada no arquivo de log Uls:
Exceção FileNotFound

Causa

Esse problema ocorre se a URL do servidor Windows SharePoint Services 2.0 difere a URL do servidor Windows SharePoint 3.0. Por exemplo, este problema ocorre se o URL do servidor Windows SharePoint Services 3.0 é http:// ServerName versão3, e o URL do servidor Windows SharePoint Services 2.0 é http:// ServerName Version2.

A tabela ImmedSubscription no banco de dados de conteúdo tem uma coluna Siteurl . Se o valor na coluna Siteurl não coincidir com a URL do aplicativo da Web, o Windows SharePoint Services não envia notificações por email quando o conteúdo em uma lista ou em uma biblioteca de alterações no documento.

Como Contornar

Para contornar esse problema, use um dos seguintes métodos.

Método 1: Usar o comando "stsadm -o updatealert" novo

O novo comando stsadm -o updatealert foi lançado no Toolkit de administração do SharePoint. Para obter mais informações e baixar o Kit de ferramentas, visite um dos seguintes sites da Microsoft, dependendo da versão do Windows SharePoint Services que você está executando.

Toolkit de administração do SharePoint x 64

http://www.microsoft.com/downloads/details.aspx?FamilyId=F8EEA8F0-FA30-4C10-ABC9-217EEACEC9CE&displaylang=en (http://www.microsoft.com/downloads/details.aspx?FamilyId=F8EEA8F0-FA30-4C10-ABC9-217EEACEC9CE&displaylang=en)

Toolkit de administração do SharePoint x 86

http://www.microsoft.com/downloads/details.aspx?FamilyId=263CD480-F6EB-4FA3-9F2E-2D47618505F2&displaylang=en (http://www.microsoft.com/downloads/details.aspx?FamilyId=263CD480-F6EB-4FA3-9F2E-2D47618505F2&displaylang=en)
Para obter mais informações, consulte o white paper "Microsoft SharePoint Administration Toolkit". Para fazer isso, visite o seguinte site:
http://go.microsoft.com/fwlink/?LinkId=117212&clcid=0x409 (http://go.microsoft.com/fwlink/?LinkId=117212&clcid=0x409)

Método 2: Usar código para atualizar as URLs

Use o código a seguir para atualizar as URLs de alertas na coluna Siteurl da tabela ImmedSubscription no banco de dados de conteúdo.

Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação para uma finalidade específica. Este artigo presume que você está familiarizados com a linguagem de programação que está sendo demonstrada e com as ferramentas que são usadas para criar e depurar procedimentos. Engenheiros de suporte podem ajudar a explicar a funcionalidade de um determinado procedimento. No entanto, eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades.
///
///  This source code is freeware and is provided on an "as is" basis without warranties of any kind, 
///  whether express or implied. This includes without limitation warranties that the code is free of defect, 
///  fit for a particular purpose or non-infringing.  The whole risk as to the quality and performance of 
///  the code is with the end-user.
///

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;

namespace V3UpdateAlerts
{
    class V3UpdateAlerts
    {
        static void Main(string[] args)
        {
            string strSiteCollection = string.Empty;

            // First (and only) argument is the URL to the Site Collection
            if (args.Length > 0)
            {
                strSiteCollection = args[0];

                try
                {
                    using (SPSite spsitecol = new SPSite(strSiteCollection))
                    {
                        using (SPWeb sprootweb = spsitecol.RootWeb)
                        {
                            ListAndFixAlerts(sprootweb);
                        } // using sprootweb
                    } // using spsitecol
                }
                catch (System.IO.FileNotFoundException ioex)
                {
                    Console.WriteLine("Could not access Site Collection: {0}", ioex.Message);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("An unexpected error occurred: {0}", ex.Message);
                } // try
            }
            else
                Console.WriteLine("No Site Collection URL was specified.");
        }

        //Enumerates all Alerts present on a Site Collection and modifies them
        //so that wrong information (for example, in the SiteUrl column) is corrected.
        static void ListAndFixAlerts(SPWeb spweb)
        {
            Console.WriteLine("\n{0} Alert(s) for site: {1} ({2})", spweb.Alerts.Count, spweb.Title, spweb.Url);

            foreach (SPAlert alert in spweb.Alerts)
            {
                try
                {
                    Console.WriteLine(" {2} Alert \"{0}\" for user \"{1}\" \n  (Id: {3})\n", alert.Title, (alert.User != null ? alert.User.Name : "<unknown>"), alert.AlertFrequency.ToString(), alert.ID.ToString());

                    //Preserve the initial Alert frequency (Immed., Daily, Weekly).
                    SPAlertFrequency afPrevious = alert.AlertFrequency;

                    //Change the Alert frequency so the datarow inside
                    //is touched by SharePoint API.
                    if (afPrevious == SPAlertFrequency.Immediate)
                        alert.AlertFrequency = SPAlertFrequency.Weekly;
                    else
                        alert.AlertFrequency = SPAlertFrequency.Immediate;

                    try
                    {
                        alert.Update();

                        //Change the Alert frequency back to the initial state.
                        alert.AlertFrequency = afPrevious;
                        alert.Update();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(" -> Error changing Alert. {0}", ex.Message);
                    } // inner try
                }
                catch (Exception ex)
                {
                    Console.WriteLine(" An unexpected error occurred while accessing the Alert object: {0}", ex.Message);
                } // outer try
            } // foreach alert

            //Handle all Sub-Webs recursively.
            if (spweb.Webs.Count > 0)
            {
                for(int i = spweb.Webs.Count -1; i >= 0; i--)
                {
                    using(SPWeb spsubweb = spweb.Webs[i])
                    {
                        ListAndFixAlerts(spsubweb);
                    } // using spsubweb
                } //for subwebs
            } //if has subweb
        }
    }
}

Mais Informações

Para obter mais informações sobre como atualizar para o Windows SharePoint Services 3.0, visite o seguinte site:
http://technet2.microsoft.com/windowsserver/WSS/en/library/91046a84-57a1-40cb-a32c-ff3395073dc91033.mspx (http://technet2.microsoft.com/windowsserver/WSS/en/library/91046a84-57a1-40cb-a32c-ff3395073dc91033.mspx)

A informação contida neste artigo aplica-se a:
  • Microsoft Windows SharePoint Services 3.0
Palavras-chave: 
kbmt kbtshoot kbexpertiseinter kbprb KB936759 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 936759  (http://support.microsoft.com/kb/936759/en-us/ )