Сайт не работает при перемещении файлов на другой сервер?

#javascript #asp-classic #windows-server-2008-r2

#javascript #жерех-классик #windows-server-2008-r2

Вопрос:

! [введите описание изображения здесь] [1] Я пытаюсь устранить эту проблему. Я создал базовую страницу asp с Javascript на одном сервере, которая на данный момент работает нормально, но когда я перемещаю страницу asp и все связанные файлы на новый сервер, она не работает. Что делает моя страница asp, так это запрашивает фамилию или имя в текстовом поле, и на ней есть кнопка, которая после нажатия возвращает все совпадения с контактной информацией. из базы данных Microsoft Access.

HTML :

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- JQuery Library used so that phone_dir.js can use JQuery -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>

    <title>Corporate Phone Directory</title>
    </head>

    <body bgcolor="#FFFFFF" link="#003399">
     <br>
     <br>
     <div style="font-size: 16px; font-family: Arial; color:#D6D6D6;"> 
      <table width="745" height="81" border="0" align="left" bordercolor="#003399">
      <tr>
    <td width="300" height="50" align="left" valign="top">
    <div align="left" valign="bottom">
    Search by either First or Last Name: 
    <br>
    <br>   
          <input name="Search" type="text" id="Search" value="">
          <input name="btnFind2" type="button" id="btnFind2" value="Find"   onClick="searchphonedirectory()">

    </div>
       </table>
      </div>
      <br>
       <br>
       <br>
       <br>
       <br>
       <br>
       <br>
        <hr>
        <div style="font-size: 16px; font-family: Arial; color:#D6D6D6;"  align="left"   id='results'>
       <!-- Your results will go here -->
       </div>


     </body>
     </html>
 

Javascript :

 $(document).ready(function()
     {

    $( "#Search" ).keypress(function() 
       {
        if(event.keyCode==13) 
        {
            $("#btnFind2").click();
        }; // End of If key code = Enter function
    }); 

 });

 function searchphonedirectory()
 {  
    var searchentry = document.getElementById('search').value;

    if (window.XMLHttpRequest)
    {
        xmlhttp2=new XMLHttpRequest();
    }
    else
    {
        xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp2.onreadystatechange=function()
    {
      if (xmlhttp2.readyState==4)
       {
        document.getElementById("results").innerHTML =   xmlhttp2.responseText;
       }

     }
     xmlhttp2.open("GET","phoneResults.asp?searchentry=" searchentry,true);
     xmlhttp2.send();

 };
 

Другой код, который генерирует результаты.

  <!--#include file="ASPFiles/phoneDirectory.asp" -->
      <%

          response.expires=-1

      err.clear

     on error resume next
 '*----------------------------------------------------------------
   searchentry = request.querystring("searchentry")
 '*----------------------------------------------------------------


     sql = "SELECT PhoneDirectory.Name, PhoneDirectory.[Phone#], PhoneDirectory.OfficeExtension, 
     PhoneDirectory.[Mobile#] "
     sql = sql  "FROM PhoneDirectory "
     sql = sql  "WHERE (PhoneDirectory.LastName Like '" amp; searchentry amp; "%' OR     
     PhoneDirectory.FirstName Like '" amp; searchentry amp; "%' ) "
     sql =  sql   "ORDER BY LASTNAME,FIRSTNAME"

     set rs=Server.CreateObject("ADODB.Recordset")
     rs.Open sql,conn

      'response.write(sql)
       response.write("<table>")
       response.write("<td width='22%' align='left' height='29'>Name</th>")
       response.write("<td width='11%' align='left' >Phone</th>")
       response.write("<td width='1%' align='left' >Ext</th>")
       response.write("<td width='12%' align='left' >Mobile</th>")
       response.write("</tr>")




  do until rs.EOF   



response.write("<tr>")

for each x in rs.Fields

    response.write("<td align='left' >" amp; x.value amp; "</td>")

next

rs.MoveNext

response.write("</tr>")

      loop

       response.write("</table>")
     %>    
 

Это открывает базу данных:

     <%
' FileName="Connection_odbc_conn_dsn.htm"
' Type="ADO" 
' DesigntimeType="ADO"
' HTTP="true"
' Catalog=""
' Schema=""
'Dim MM_phoneDirectory_STRING
'MM_phoneDirectory_STRING = "dsn=PhoneDB;"


 set conn=Server.CreateObject("ADODB.Connection")
 conn.Provider="Microsoft.Jet.OLEDB.4.0"

'TESTING DB
 conn.Open(Server.Mappath("/webs/corporatenet2/databases/Phone_Directory.mdb"))


  %>
 

Комментарии:

1. Что вы подразумеваете под «не работает»? В чем ваша ошибка?

2. Кнопка не работает. Я не получаю результатов

3. Вы уверены, что ваше приложение может получить доступ к базе данных со второго сервера? Можете ли вы указать, какую строку предполагается использовать для получения данных из базы данных?

4. В современных браузерах есть панель «Инструменты разработчика». Я предлагаю использовать это, чтобы увидеть, что на самом деле возвращается вызовом ajax.

5. Примечание: сделайте себе одолжение и изучите форматирование, которое я добавил к вашему вопросу. Всего этого //This is the end of blah blah blah дерьма можно избежать, отформатировав свой код. Как сказал Родрик, инструменты разработчика chrome или firebug для firefox помогут вам диагностировать проблему. Если вы не можете найти проблему после этого, просто обновите вопрос тем, что вы узнали.

Ответ №1:

Первое, что вы пропустили, чтобы упомянуть событие» в событии нажатия клавиши и удалить функцию searchphonedirectory () из ввода HTML «onClick»,

  <input name="btnFind2" type="button" id="btnFind2" value="Find">
 

Добавьте его в свой код javascript следующим образом.

  $( "#Search" ).keypress(function(event) 
 {
    if(event.keyCode==13) 
    {
       searchphonedirectory();
    }; // End of If key code = Enter function
}); //End of Search Keypress Function
 

надеюсь, это поможет.

Комментарии:

1. это делает то же самое, что и текущий код. к чему ты клонишь?

Ответ №2:

Возможно, это не ответ, но он, безусловно, поможет вам в правильном направлении, если проблема основана на ASP.

В корне вашего веб-сервера (inetpub wwwroot) создайте папку с именем errors . В этой папке создайте файл с именем error.asp и вставьте в него следующее…

 <%Option Explicit%>
<%
    dim LOGON_USER
    LOGON_USER = UCASE(Request.ServerVariables ("LOGON_USER"))
    PATH = request.ServerVariables("PATH_TRANSLATED")
    Const lngMaxFormBytes = 2000
    Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP
    Dim strMethod, lngPos, datNow, strQueryString, strURL,PATH
    Dim arrError,i
    If  Response.Buffer Then
        Response.Clear
        Response.Status = "500 Internal Server Error"
        Response.ContentType = "text/html"
        Response.Expires = 0
    End If

    Set objASPError = Server.GetLastError

%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<html>

    <head>

        <title>eDischarge encountered an error...</title>
        <meta http-equiv="Content-Type" content="text-html; charset=Windows-1252">
        <link href="includesstylesheet.css" rel="stylesheet" type="text/css">
        <style type="text/css">
            <!--
                html {
                    font-family: Arial, Helvetica, sans-serif;
                }
                html body {
                    font-family: Arial, Helvetica, sans-serif;
                }
                body {
                    font-family: Arial, Helvetica, sans-serif;
                    color: #330000;
                    margin: 0;
                    padding: 0;
                }
                p {
                    font-size: 90%;
                }
                .errortitle {
                    font-family: Arial, Helvetica, sans-serif;
                    color: white;
                    font-size: 150%;
                    font-weight: bold;
                    width: 100%;
                    background-color: #770000;
                    padding: 1em;
                }
                .errorbody {
                    padding: 2em;
                    background: url(http://stas35/errors/images/error.gif) no-repeat top left;
                }
                .errormessage {
                    border-left: 10px solid #770000;
                    padding: 0 0 0 1em;
                    margin-left: 2em;
                    color: #770000;
                }
                .errorpadleft {
                    padding-left: 2em;
                }
            -->
        </style>

    </head>

    <%
        strError = strError amp; "<p><strong>Error Type:</strong></p>"
        strError = strError amp; "<p class=""errorpadleft"">" amp; Server.HTMLEncode(objASPError.Category) amp; "</p>"
        If objASPError.ASPCode > "" Then 
            strError = strError amp; "<p class=""errorpadleft"">" amp; Server.HTMLEncode(", " amp; objASPError.ASPCode) amp; "</p>"
        end if

        strError = strError amp; "<p class=""errorpadleft"">" amp; Server.HTMLEncode(" (0x" amp; Hex(objASPError.Number) amp; ")" )  amp; "</p>"
        If objASPError.ASPDescription > "" Then 
            strError = strError amp; Server.HTMLEncode(objASPError.ASPDescription) amp; "<br/>"
        elseIF (objASPError.Description > "") Then 
            strError = strError amp; "<p class=""errorpadleft"">" amp;  Server.HTMLEncode(objASPError.Description)  amp; "</p>"
        end if

        blnErrorWritten = False

          ' Only show the Source if it is available and the request is from the same machine as IIS
        If objASPError.Source > "" Then
            strServername = LCase(Request.ServerVariables("SERVER_NAME"))
            strServerIP   = Request.ServerVariables("LOCAL_ADDR")
            strRemoteIP   = Request.ServerVariables("REMOTE_ADDR")
            If (strServername = "localhost" Or strServerIP = strRemoteIP) And objASPError.File <> "?" Then
                strError = strError amp; "<p class=""errorpadleft"">" amp; Server.HTMLEncode(objASPError.File)
                If objASPError.Line > 0 Then 
                    strError = strError amp; ", line " amp; objASPError.Line
                end if
                If objASPError.Column > 0 Then 
                    strError = strError amp; ", column " amp; objASPError.Column
                end if
                strError = strError amp; "</p>"
                strError = strError amp; "<p class=""errorpadleft"">" amp; Server.HTMLEncode(objASPError.Source) amp; "</p>"
                If objASPError.Column > 0 Then  strError = strError amp; "<p class=""errorpadleft"">" amp; String((objASPError.Column - 1), "-") amp; "</p>"
                blnErrorWritten = True
            End If
        End If

        If Not blnErrorWritten And objASPError.File <> "?" Then
            strError =strError amp; "<p class=""errorpadleft"">" amp; Server.HTMLEncode(  objASPError.File)
            If objASPError.Line > 0 Then 
                strError =strError amp; Server.HTMLEncode(", line " amp; objASPError.Line)
            end if
            If objASPError.Column > 0 Then
                strError =strError amp; ", column " amp; objASPError.Column
            end if
            strError = strError amp; "</p>"
          End If

        strError = strError amp; "<p><strong>Browser Type:</strong></p>"
        strError = strError amp; "<p class=""errorpadleft"">" amp; Server.HTMLEncode(Request.ServerVariables("HTTP_USER_AGENT")) amp; "</p>"

        strMethod = Request.ServerVariables("REQUEST_METHOD")
        If strMethod = "POST" Then
            strError =strError amp; "<p class=""errorpadleft"">POST Data: (" amp; Request.TotalBytes amp; " bytes "
            If lngPos > 1 Then strError =strError amp; "?" amp; Server.HTMLEncode(Left(Request.QueryString, (lngPos - 1)))
            strError =strError amp; ")</p>"
            arrError = split(Request.Form,"amp;")
            For i = LBound(arrError) To UBound(arrError)
                strError =strError amp; "<p>"  amp; Server.HTMLEncode(arrError(i)) amp; "</p>"
            Next
        End If

        strError = strError amp; _
            "<p>" amp; _
                "<strong>User Logon: </strong>" amp; LOGON_USER amp; "<br/>" amp; _
                "<strong>User IP: </strong>" amp; Request.ServerVariables ("REMOTE_ADDR") amp; "<strong><br/>" amp; _
                "Time: </strong>" amp; Now() amp; _
            "</p>"
        SendMail email_from,email_to,system_name amp;" 500-100 Error  " amp; LOGON_USER,"<HTML>" amp; PATH amp; "<BR><BR>" amp; replace(strError,"/","/") amp; "</HTML>" ,2
    %>

    <body>
        <div class="errortitle">Your system has encountered an error...</div>
        <div class="errorbody">
            <div class="errormessage"><%=strError%></div>
        </div>
    </body>

</html>
 

Теперь в IIS перейдите в раздел пользовательских ошибок и прокрутите вниз до ошибки 500. Отредактируйте … эту ошибку и выберите URL в качестве типа сообщения. В поле URL внизу введите /errors/error.asp (помните, что папка должна находиться в корне вашего веб-сервера [обычно это <drive>Inetpubwwwroot так] — если вы решите поместить ее в другое место, это не сработает, пока вы не разрешите путь).

Теперь попробуйте снова запустить свои страницы и посмотреть, не появятся ли у вас какие-либо сообщения об ошибках ASP. Ваша страница должна быть перенаправлена на страницу error.asp, если есть ошибка.

(Дайте мне знать, если есть какие-либо ошибки в приведенном выше коде — мне пришлось модифицировать его на лету, и у меня не было возможности его протестировать).