ich die Antwort selbst gefunden.
Stellen Sie sicher, Request.UserLanguages! = Null zu überprüfen, bevor Sie es verwenden. Stellen Sie außerdem sicher, dass CurrentCulture auf einen gültigen Standardwert festgelegt ist. Der Grund für diese beiden Überprüfungen liegt darin, dass Bots Request.UserLanguages nicht verwenden - es ist immer null. Browser verwenden Request.UserLanguages. Um es mit anderen Worten neu zu formulieren: Setzen Sie die CurrentCulture nicht, wenn Request.UserLanguages null ist.
Hier ist das Problem:
Alle aspx Seiten in meiner Website aus einer benutzerdefinierten Basisklasse erben, die von System.Web.UI.Page erbt. Dies ist kein Problem, bis Sie die OnLoad() - oder Init-Ereignisse mit Code überschreiben, der nur für Bots eine Ausnahme auslöst. Ich hatte diese Codezeile in meinem OnLoad() Ereignis:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);
Dieser Code funktioniert gut, wenn aspx Seiten über einen Browser. Duh! Wer wird keinen Browser benutzen ...? antwort: googlebot und alle anderen bots.
Wie kann man überprüfen, ob der Googlebot ein Problem Indizierung Ihrer Website hat:
- für Google Webmastertools Registrieren, wenn Sie nicht bereits haben.
- Gehen Sie zu Labs -> Abrufen als Googlebot
- Geben Sie die URL ein, die Sie überprüfen möchten. Klicken Sie dann auf den Statuslink, um zu sehen, was der googlebot gefunden hat. Wenn googlebot irgendwelche Weiterleitungen (wie 302) zurückgibt, ist das normalerweise keine gute Sache. Wenn alle Seiten Ihrer Website 302 Weiterleitungen zu Ihrer benutzerdefinierten Fehlerseite erhalten, liegt ein Problem vor. Es bedeutet, dass Ihre Webseiten einen Fehler (eine nicht behandelte Ausnahme) verursachen, wenn googlebot versucht, auf sie zuzugreifen. Sehen Sie sich die Funktionen Page Load() und Init() an, um mögliche Fehler von googlebot zu ermitteln. Sie können Ihre Seiten auch mit der coolen Befehlszeilen-App curl (http://curl.haxx.se/) testen. Mit diesem Tool war ich in der Lage, die Site auf unserem Testserver zu testen, bevor wir in die Produktion gehen (was Sie jedes Mal tun müssten, wenn Sie eine Änderung vornehmen, wenn Sie google fetch verwenden).
Dies ist weniger eine Frage und mehr eine Antwort. Obwohl sehr hilfreich, mach es vielleicht Community Wiki, oder es könnte geschlossen werden. –
Gut zu wissen, klingt so schwer zu haben, herauszufinden. –
Sie sollten darüber bloggen, nicht eine Rhetorik oder "wie" Dokument zu posten – stillstanding