Artigo: 936993 - Última revisão: sexta-feira, 1 de Junho de 2007 - Revisão: 1.2

Mensagem de erro quando acede a uma página Web que executa um programa do AJAX 1.0 activados ASP.NET 2.0: "Ocorreu um erro de tempo de execução de"

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 | Reduzir tudo

Sintomas

Recebe a seguinte mensagem de erro quando acede a uma página Web que executa um programa do AJAX 1.0 activados Microsoft ASP.NET 2.0:
Ocorreu um erro de tempo de execução.
Pretende depurar?
Linha: 5
Erro: O acesso é negado
Esta mensagem de erro ocorre se verifiquem as seguintes condições:
  • Utilizar um elemento <iframe> numa página Web que aponta para outra página Web de um domínio diferente.
  • A página Web de um domínio diferente utiliza controlos de servidor do AJAX ASP.NET.
  • Executar uma acção no elemento <iframe> que acciona uma operação assíncrona reposição.
  • Microsoft Internet Explorer, clique para seleccionar as seguintes caixas de verificação em navegação (Browsing) no separador Avançadas em Opções da Internet :
    • desactivar a depuração (Internet Explorer) de script
    • desactivar a depuração (outros) de script

Causa

Este problema ocorre porque a página Web que contém o elemento <iframe> e a página Web aos quais os pontos de elemento <iframe> estão em domínios diferentes. O AJAX 1.0 activados ASP.NET script falha quando tenta determinar o desvio do conteúdo.

Resolução

Para resolver este problema, utilize um dos seguintes métodos.

Método 1

Certifique-se que a página Web que contém o elemento <iframe> e a página Web aos quais os pontos de elemento <iframe> estão no mesmo domínio.

Método 2

Actualize os ficheiros JavaScript para evitar a mensagem de erro. Utilize ficheiros de scripts externos existem o pacote de biblioteca AJAX em vez dos ficheiros com o recurso que existem no pacote AJAX extensão. Para o fazer, siga estes passos.

Passo 1: Configurar a página Web para utilizar os ficheiros de script em vez dos ficheiros de recurso

  1. Transferir e, em seguida, extraia a biblioteca AJAX a partir do Centro de transferências da Microsoft.

    O ficheiro seguinte está disponível para transferência a partir do Centro de transferências da Microsoft:

    Reduzir esta imagemExpandir esta imagem
    Download
    Download the Microsoft AJAX Library package now. (http://ajax.asp.net/downloads/library/default.aspx?tabid=47&subtabid=471)

    Para obter mais informações sobre como transferir ficheiros de suporte da Microsoft, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    119591  (http://support.microsoft.com/kb/119591/ ) Como obter ficheiros de suporte da Microsoft a partir de serviços online
    Microsoft procedeu de vírus neste ficheiro. Microsoft utilizou o mais recente software de detecção de vírus que estava disponível na data em que o ficheiro foi publicado. O ficheiro é alojado em servidores com segurança avançada o que ajuda a impedir alterações não autorizadas ao ficheiro.
  2. Na página Web que contém o elemento <iframe>, especifique um valor para oatributo ScriptPath no elemento <scriptmanager>. O seguinte código procurará os scripts numa pasta denominada scripts no directório raiz da aplicação.
    <asp:ScriptManager ID="ScriptManager1" runat="server" ScriptPath="~/Scripts" />
  3. Copie a pasta System.Web.Extensions na biblioteca do AJAX para a pasta de scripts.
  4. Aceder à página ASPX para confirmar que os ficheiros de script denominam-se na pasta de scripts. Para tal, clique em origem no menu Ver do Internet Explorer. Localize os seguintes códigos dois script.
    <script src="Scripts/System.Web.Extensions/1.0.61025.0/MicrosoftAjax.js" type="text/javascript"></script>
    <script src="Scripts/System.Web.Extensions/1.0.61025.0/MicrosoftAjaxWebForms.js" type="text/javascript"></script>
    

Passo 2: Modificar o ficheiro MicrosoftAjax.debug.js para evitar a mensagem de erro

Tem de utilizar o ficheiro MicrosoftAjax.debug.js quando o atributo de depuração no elemento <compilation> é definido como TRUE no ficheiro Web.config. O ficheiro MicrosoftAjax.debug.js contém quebras de linha. Para modificar o ficheiro MicrosoftAjax.debug.js, siga estes passos:
  1. Abra o ficheiro MicrosoftAjax.debug.js. Este ficheiro está localizado na seguinte pasta:
    Application Root Directory/Scripts/System.Web.Extensions/1.0.61025.0
  2. Localize as seguintes duas linhas de código. (Poderão existir código entre estas duas linhas.)
    switch(Sys.Browser.agent) {
        case Sys.Browser.InternetExplorer:
    

    case Sys.Browser.Safari:
    
  3. Cole o seguinte código entre as duas linhas de código, listados passo 2b. Se existir código entre as duas linhas, substitua o código.

    código novo
     Sys.UI.DomElement.getLocation = function(element) {
                if (element.self || element.nodeType === 9) return new Sys.UI.Point(0,0);
    
                var clientRect = element.getBoundingClientRect();
                if (!clientRect) {
                    return new Sys.UI.Point(0,0);
                }
    
                var ownerDocument = element.document.documentElement;
    
                var offsetX = clientRect.left - 2 + ownerDocument.scrollLeft,
                    offsetY = clientRect.top - 2 + ownerDocument.scrollTop;
                
                try {
                    var f = element.ownerDocument.parentWindow.frameElement || null;
                    if (f) {
                        var offset = 2 - (f.frameBorder || 1) * 2;
                        offsetX += offset;
                        offsetY += offset;
                    }
                }
                catch(ex) {
                }    
                
                return new Sys.UI.Point(offsetX, offsetY);
            }
            break;
    
  4. Guarde o ficheiro MicrosoftAjax.debug.js.
  5. Abrir o ficheiro Web.config no programa do ASP.NET e, em seguida, definir o atributo de depuração para TRUE no elemento <compilation>.
  6. Guarde a página Web.

Passo 3: Modificar o ficheiro MicrosoftAjax.js para evitar a mensagem de erro

O ficheiro MicrosoftAjax.js é a versão do ficheiro MicrosoftAjax.debug.js. O MicrosoftAjax.js não contém quebras de linha. Para modificar o ficheiro MicrosoftAjax.js, siga estes passos:
  1. Abra o ficheiro MicrosoftAjax.js na pasta scripts.
  2. Localize as seguintes duas linhas de código. (Poderão existir código entre estas duas linhas.)
    switch(Sys.Browser.agent){case Sys.Browser.InternetExplorer:
    

    case Sys.Browser.Safari:
  3. Cole o seguinte código entre as duas linhas de código, listados passo 3b. Se existir código entre as duas linhas, substitua o código.

    código novo
    Sys.UI.DomElement.getLocation=function(a){if(a.self||a.nodeType===9) return new Sys.UI.Point(0,0);
    var b=a.getBoundingClientRect();
    if(!b) return new Sys.UI.Point(0,0);
    var c=a.document.documentElement,d=b.left-2+c.scrollLeft,e=b.top-2+c.scrollTop;
    try{var g=a.ownerDocument.parentWindow.frameElement||null;
    if(g){var f=2-(g.frameBorder||1)*2;
    d+=f;e+=f}}catch(h){}return new Sys.UI.Point(d,e)};
    break;
  4. Guarde o ficheiro MicrosoftAjax.js.
  5. Abrir o ficheiro Web.config no programa do ASP.NET e, em seguida, definir o atributo de depuração para TRUE no elemento <compilation>.
  6. Guarde a página Web.

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

Para mais informações sobre o elemento <iframe>, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms535258.aspx (http://msdn2.microsoft.com/en-us/library/ms535258.aspx)
Para obter mais informações sobre o AJAX ASP.NET, visite o seguinte Web site da Microsoft:
http://ajax.asp.net/about/default.aspx?tabid=47 (http://ajax.asp.net/about/default.aspx?tabid=47)

A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 2.0
Palavras-chave: 
kbmt kberrmsg kbwebbrowser kbfix kbasp kbtshoot kbprb KB936993 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: 936993  (http://support.microsoft.com/kb/936993/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.