2013-05-13 1 views
3

Я создал приложение с использованием Visual Studio LightSwitch 2011 (v1), работающего на Visual Studio 2010 Professional. Это настольное приложение, и я использую аутентификацию SQL Server для подключения к базе данных. (То же имя пользователя/пароль для всех клиентов).LightSwitch v1 показывает красный X и не может загрузить данные

Приложение отлично работает для большинства пользователей, но для 4-5 пользователей оно показывает красный X и говорит, что оно не может загружать данные. Это самое неопределенное сообщение об ошибке, и я понятия не имею, что может вызвать это. Все пользователи могут получить доступ к нашей базе данных со своих ПК, потому что некоторые другие приложения без подсветки работают нормально. Это исключает любые проблемы с сетью/подключением.

После нескольких дней поиска и попытки понять это, я не нашел простой способ определить, в чем причина ошибки красного-X. Кроме того, пользователи находятся в другой стране, поэтому у меня нет физического доступа к их машинам. Единственное, что я должен сделать, это то, что эти пользователи работают под управлением Windows 7 (брандмауэры не установлены). Один из них, наконец, выполнил чистую установку Windows 7, а при установке приложения он получил ошибку red-X (не удалось загрузить данные).

Есть ли какой-либо простой способ выяснить, почему lightswitch не может загрузить данные из нашей базы данных? (База данных = SQL Server 2005)

Спасибо за помощь.

ответ

4

Отъезд Eric Erhardt's article. Вот цитата:

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

Известный секрет LightSwitch заключается в том, что на сервере установлена ​​подсистема диагностики, интегрированная с трассировкой ASP.NET. Подсистема диагностики LightSwitch намного мощнее, чем просто рассказывать вам, какое исключение было выбрано при выдаче запроса. Вы можете использовать его для отслеживания действий, которые были запрошены на сервере, и о том, какие шаги сервер принял в ответ на каждое действие. Поэтому, даже если что-то работает, вы можете получить больше информации о том, что на самом деле делало ваше приложение.

Таким образом, вы можете включить диагностику, а затем открыть трассировку: your-lightswitch-application-address/trace.axd. Затем вы можете проверить сведения об ошибках (скриншот взят из блога статьи):

The error as shown from the trace

Другой альтернативный способ to use Fiddler. Это также объясняется в той же статье.

+0

Спасибо - я попробую это и вернусь к вам ... – Omaer

+0

Несомненно, это сработало? –

+0

Trace.axd работает - спасибо! Единственная проблема заключается в том, что я не уверен, как понять смысл следа. Пользователь дал мне дамп всех экранов ViewDetails на главной странице трассировки. И я вижу, что многие из них возвращают код состояния 500 - это внутренняя ошибка сервера. Опять же довольно расплывчато ... Есть ли у вас какие-либо предложения по дальнейшему поиску проблемы? PS. Я фактически сравнил то, что увидел пользователь, и то, что я вижу, и единственная разница, похоже, является кодом состояния. Я получаю http 200, пользователь получает http 500 ... Спасибо! – Omaer

2

Благодаря Брайану Хонгу для указания меня в правильном направлении. Я просто хочу поставить свои выводы в одном месте, чтобы другие могли ссылаться, если они оказываются в одной и той же ситуации.

Eric Erhardt's артикул, который предназначен для Lightswitch Web Applications. Ниже приведенные ниже шаги должны применяться к Lightswitch Desktop Applications.

Включить отслеживание в приложении фонарика. Для этого мне пришлось изменить файл Web.config, расположенный в папке release/публикации (не файл, расположенный в папке «Источник» для вашего проекта). LightSwitch переопределит этот web.config - , это была сложная часть) ,Используйте текстовый редактор для внесения изменений в это: изменить следующие ключи в configuration>>appSettings:

<!-- A value of true will enable diagnostic logging on the server --> 
    <add key="Microsoft.LightSwitch.Trace.Enabled" value="true" /> 
    <!-- A value of true only lets local access to Trace.axd --> 
    <add key="Microsoft.LightSwitch.Trace.LocalOnly" value="false" /> 
    <!-- The valid values for the trace level are: None, Error, Warning, Information, Verbose --> 
    <add key="Microsoft.LightSwitch.Trace.Level" value="Verbose" /> 

И под configuration>>system.web, убедитесь, что трассировка включена:

<!-- LightSwitch trace.axd handler --> 
    <trace enabled="true" localOnly="false" requestLimit="40" writeToDiagnosticsTrace="false" traceMode="SortByTime" mostRecent="true" /> 

И последнее изменение, что вам нужно сделать это, чтобы установить режим CustomErrors Выкл при configuration>>system.web

Добавьте следующий ключ (или изменить его, если он уже существует):

<customErrors mode="Off" /> 

Теперь, чтобы просмотреть ошибки, установите Fiddler, а затем запустите Fiddler и запустите приложение silverlight. Нажмите на сеанс слева, затем нажмите «Инспекторы» и «Веб-инспектор» справа. Это должно содержать сообщение об ошибке.

Дополнительную информацию см. В ответе Брайана выше или на Eric Erhardt's article.

+0

Разве у нас нет двух правильных ответов? – Omaer

0

Это случилось со мной, когда я попытался добавить ссылку, в которой не было переносной поддержки в общий (при ее добавлении она появлялась с предупреждением, но сначала я не слушал). Если вы это сделали, снимите отметку с справки, и все должно быть хорошо

+0

Привет ... этот вопрос уже ответился. Для меня проблема связана с поврежденным файлом machine.config на 64-битной Windows. (Я разместил отдельный вопрос [здесь] (http://stackoverflow.com/questions/16591151/lightswitch-v1-desktop-application-doesnt-work-on-64bit-client)). Спасибо, в любом случае! – Omaer

0

У меня была такая же проблема после обновления моего MDF и LDF, когда он начал работать. Значение, если вы вносите какие-либо изменения в базу данных, а схема инфраструктуры сущности не обновляется одинаково, как вы видите эту ошибку. это сработало в моем случае

+0

'У меня была такая же проблема после обновления моего MDF и LDF, что он начал работать' вы имеете в виду' остановленный' вместо 'start'? –