Поврежденные заголовки в Response.Redirect - PullRequest
0 голосов
/ 25 ноября 2010

У меня есть один пользователь на веб-сайте, который получает эту ошибку:

Object reference not set to an instance of an object.HTTP/1.1 302 Found  
Cache-Control: private  
Content-Type: text/html; charset=utf-8  
Location: /search.aspx?ds=1&s=s%c3%b8ren s%c3%b8rensen  
Server: Microsoft-IIS/7.5  
X-AspNet-Version: 2.0.50727  
X-Powered-By: ASP.NET  
Date: Thu, 25 Nov 2010 10:26:54 GMT  
Content-Length: 177

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="%2fsearch.aspx%3fds%3d1%26s%3ds%25c3%25b8ren+s%25c3%25b8rensen">here</a>.</h2>
</body></html>

Рассматриваемое перенаправление выполняется здесь:

protected void btnSearch_Click(object sender, EventArgs e) {
    string strSearch = ss.StringStuff.FixNullString(txtSearch.Text);
    if (strSearch != "") {          
        Document dcFrontpage = new Document(1170);
        int intSearchPageId = ss.NumberStuff.FixNull(dcFrontpage.getProperty("searchPageContentPicker").Value.ToString());
        string strSearchPageUrl = umbraco.library.NiceUrl(intSearchPageId);
        Response.Clear();
        Response.Redirect(strSearchPageUrl + "?ds=1&s=" + strSearch);
    }
}

Иногда пользователя спрашивают, хочет ли онсохранить файл, даже если это файл .aspx, а в остальное время браузер просто показывает содержимое выше.
Я думаю, что обе ошибки происходят, потому что текст «Ссылка на объект не установлен на экземпляр объекта».вставляется в заголовки.Это, конечно, не относится к этой категории и делает страницу очень недействительной, и поэтому браузер ведет себя так, как описано.
Я не могу воспроизвести ошибку, и никто из моих коллег не может.

Кто-нибудь видел что-нибудькак раньше?Как можно вставить текст в заголовки и почему он предназначен только для одного (или очень небольшого) пользователя (ов)?

Заранее спасибо

Редактировать: Я уже думал о том, что где-то в коде есть try-catch, который должен записывать ошибку, которая возникает где-то, но почему эта ошибка должна быть помещена в начало заголовков и почему она должна возникать только для оченьмало пользователей?
Кроме того, я только что проверил каждую попытку в решении.Никто из них не выводит сообщение об ошибке через Response.Write.

Ответы [ 2 ]

0 голосов
/ 29 ноября 2010

Ошибка теперь найдена.
Похоже, что у пользователя были строгие настройки антивируса, которые вызвали эту ошибку.
При отключении этих настроек она больше не могла воспроизводить ошибку.

0 голосов
/ 25 ноября 2010

Я подозреваю, что где-то может быть немного кода, похожего на этот.Выньте try-catch.Вы не хотите этого, и при этом человек, который в конечном счете поддержит это.

try
{
    // Do something
}
catch (Exception ex)
{
    Respose.Write(ex.Message);
}
...