Depurar e solucionar problemas com um receptor de eventos remotos em um suplemento do SharePoint
Configurar a depuração de um site de teste do SharePoint remoto
Observação
Os procedimentos desta seção aplicam-se somente quando o site de teste do SharePoint está em um computador diferente do Visual Studio ou se você estiver usando um Site do Desenvolvedor do SharePoint Online como seu site de teste. Se o SharePoint e o Visual Studio estiverem no mesmo computador, ignore esta seção.
Quando um projeto de Suplemento do SharePoint no Visual Studio inclui um destinatário em eventos remoto (RER) ou um destinatário de evento do suplemento, você precisa definir algumas configurações adicionais rápidas nas propriedades do projeto antes de poder depurar o suplemento com (F5). Essa configuração, por sua vez, requer algumas configurações do Azure. Não é necessário repetir a configuração do Azure para cada projeto que tiver um RER ou um evento de suplemento. (Se o suplemento incluir um manipulador de eventos AppInstalled, o suplemento são será executado com F5 ou Ctrl+F5 [execução sem depuração], a menos que você faça a configuração nesta seção).
Como configurar o Azure
Faça uma assinatura do Microsoft Azure caso não tenha uma. Uma vem incluída como benefício com uma Assinatura MSDN.
Siga as instruções em Criar um namespace de Barramento de Serviço.
Como configurar o projeto de Suplemento do SharePoint no Visual Studio
Você deve ter a versão mais recente das Ferramentas de Desenvolvedor do Office para Visual Studio, portanto, execute o instalador webPI aqui ou o instalador para Ferramentas de Desenvolvedor do Office para Visual Studio 2015.
Depois de adicionar um RER ou manipulador de eventos de suplemento a um projeto de Suplemento do SharePoint no Visual Studio, clique com botão direito do mouse no projeto no Gerenciador de Soluções e selecione Propriedades.
No painel Propriedades, abra a guia SharePoint e role até a parte inferior.
Marque a caixa de seleção para Habilitar a depuração por meio do Barramento de Serviço do Microsoft Azure.
Insira a cadeia de conexão completa na caixa de texto fornecida. Para obter a cadeia, siga estas etapas.
Entre no portal do Azure e abra a guia Barramento de Serviço.
Abra o namespace que você criou para a depuração de RER e navegue até as cadeias de conexão. A interface do usuário do portal do Azure é alterada com frequência. Se você não encontrar as cadeias de conexão, confira Ajuda do portal Azure.
Copie a cadeia de conexão SAS. Esta é a cadeia de caracteres que você insere nas propriedades de projeto do Visual Studio.
No futuro, quando criar projetos de Suplementos do SharePoint no Visual Studio, esta informação já estará preenchida, assim não será preciso abrir o portal do Azure todas as vezes.
Testar a configuração
Use os procedimentos nesta seção para verificar se você pode depurar um RER.
Para criar um projeto de receptor de eventos remoto
No Visual Studio, crie um Suplemento do SharePoint hospedado em provedor. Consulte Começar a criar suplementos do SharePoint hospedados pelo provedor.
No Gerenciador de Soluções, selecione o nó do projeto de suplemento.
Na barra de menus, selecione Projeto>Adicionar novo item.
No painel Modelos, selecione o modelo Lista e depois selecione Adicionar.
Selecione Concluir para adicionar uma lista personalizada padrão ao projeto de suplemento.
Adicione outro item ao projeto de suplemento selecionando o modelo Receptor de Eventos Remoto no painel Modelos.
Na caixa Nome, mantenha o nome padrão (RemoteEventReceiver1) e selecione Adicionar.
Na lista Que tipo de receptor de eventos você deseja?, selecione Eventos de Item de Lista. Deixe a origem do evento como List1, a lista que você adicionou nas etapas anteriores.
Na lista Manipule os seguintes eventos, selecione Um item está sendo adicionado e, em seguida, selecione Concluir.
Um serviço Web é adicionado ao aplicativo Web para manipular o evento remoto que você especificou. Um receptor de eventos remoto é adicionado ao Suplemento do SharePoint. O receptor faz referência ao serviço Web e ao evento de item de lista no arquivo Elements.xml do receptor de eventos.
No projeto de suplemento, abra AppManifest.xml.
Altere a página inicial para a página da lista: AddInProjectName/Lists/List1.
Substitua AddInProjectName pelo nome do seu projeto de suplemento, como
SharePointAddIn4/Lists/List1
. Neste exemplo, configuramos a página inicial como a página da lista. No entanto, em um suplemento típico, provavelmente você vai querer apontar para a sua própria interface do usuário na página de projeto da Web.
Para executar e testar a depuração do manipulador de eventos
Se ainda não o fez, siga o procedimento Configurar um projeto de Suplemento do SharePoint no Visual Studio anteriormente neste artigo.
No projeto da Web, abra o serviço de receptor de eventos remoto (RemoteEventReceiver1.svc) e adicione um ponto de interrupção a qualquer linha de código dentro do método
ProcessEvent()
.Selecione a tecla F5 para executar o projeto.
Selecione o botão + Novo item para adicionar um item à lista.
Forneça um título para o item e selecione Salvar. O ponto de interrupção que você adicionou ao receptor de eventos remoto é atingido, confirmando que você está depurando o receptor de eventos remoto.
Selecione a tecla F5 para continuar a executar o projeto e parar de depurar quando terminar.
Ativar/desativar a notificação do Visual Studio de que a depuração do evento precisa ser configurada
Se você tiver um evento remoto do projeto e não tiver configurado a depuração de eventos, o Visual Studio solicitará que você configure a depuração de um evento remoto (consulte a figura a seguir). Você pode alterar esse comportamento desmarcando a caixa de seleção Notificar-me se a depuração de eventos remotos não estiver configurada na guia SharePoint.
Notificação de depuração de eventos remotos
Verificar se o seu serviço está hospedado no barramento de serviço
Depois de selecionar F5 e a confiabilidade do suplemento, vá para o namespace do Barramento de Serviço no navegador, por exemplo, http://mynamespace.servicebus.windows.net
, e você deve ver o ponto de extremidade listado como um número. A figura a seguir mostra a aparência da página quando um namespace não estiver listado; ou seja, antes de você selecionar F5.
Navegar até o namespace do barramento de serviço
O RER não atingiu o ponto de interrupção
Dependendo do evento, o evento remoto pode ser síncrono ou assíncrono. Pode levar alguns segundos ou mais para atingir o ponto de interrupção se for assíncrono.
Erro: "Não havia nenhum ponto de extremidade em escuta"
Você vê o seguinte erro quando o manipulador é executado em produção:
"Falha na chamada do receptor de eventos remoto. Detalhes: não havia nenhum ponto de extremidade que https://{domain}:nnnnn/{path}/AppEventReceiver.svc
pudesse aceitar a mensagem. Isso geralmente é causado por um endereço incorreto ou ação SOAP.". (onde nnnnn é uma porta).
O SharePoint exige que não haja porta explícita na URL do manipulador em produção. Isso significa que você deve usar a porta 443 para HTTPS, que recomendamos, ou a porta 80 para HTTP.
Erro: "Não foi possível estabelecer uma relação de confiança para o canal protegido SSL/TLS com a autoridade"
Você vê o seguinte erro quando o manipulador é executado em produção:
"Falha na chamada do receptor de eventos remoto. Detalhes: não foi possível estabelecer uma relação de confiança para o canal seguro SSL/TLS com autoridade."
Quando o suplemento estiver no SharePoint Online, mas o serviço de receptor do evento remoto estiver no local usando HTTPS como recomendamos, o servidor que hospeda o receptor não poderá usar um certificado autoassinado na produção. O servidor deve ter um certificado publicamente aceito de uma autoridade de certificação. Se o suplemento estiver em um farm do SharePoint no local, um certificado autoassinado será aceitável.