2013-05-13 45 views
3

我已經使用在Visual Studio 2010 Professional上運行的Visual Studio LightSwitch 2011(v1)創建了一個應用程序。這是一個桌面應用程序,我使用SQL Server身份驗證連接到數據庫。 (所有客戶端的相同用戶名/密碼)。LightSwitch v1顯示紅色X並且無法加載數據

該應用程序完美適用於大多數用戶,但對於4-5個用戶,它顯示一個紅色的X並表示無法加載數據。這是有史以來最模糊的錯誤信息,我不知道是什麼原因造成的。用戶都可以從他們的PC訪問我們的數據庫,因爲其他一些非lightswitch應用程序工作正常。這排除了任何網絡/連接問題。

經過幾天的搜索,並試圖找出這一點,我還沒有找到一個簡單的方法來確定是什麼原因的紅色X錯誤。另外,用戶位於不同的國家,所以我沒有物理訪問他們的機器。我唯一要做的就是這些用戶都運行Windows 7(沒有安裝防火牆)。其中一人最終做了Windows 7的全新安裝,並且在安裝應用程序時,他得到了red-X(無法加載數據)錯誤。

有什麼簡單的方法可以找出爲什麼lightswitch無法從我們的數據庫加載數據? (Database = 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 2013-05-14 11:14:44

+0

當然,它的工作? – 2013-05-16 00:40:37

+0

Trace.axd正在工作 - 謝謝! 唯一的問題是,我不確定如何理解追蹤。用戶給了我一個主要跟蹤頁面上所有ViewDetails屏幕的轉儲。而我能看到的是,他們中的很多人返回了一個500的狀態碼 - 這是一個內部服務器錯誤。再次相當含糊...... 對於如何進一步深入研究問題,您有什麼建議嗎? PS:我實際上比較了用戶看到的和我所看到的,唯一的區別似乎是狀態碼。我得到一個http 200,用戶得到一個http 500 ... 謝謝! – Omaer 2013-05-16 11:19:53

2

感謝Bryan Hong指引我朝着正確的方向前進。我只想把我的發現放在一個地方讓別人參考,看他們是否發現自己處於同樣的境地。

以下內容是基於Eric Erhardt's文章的,文中指的是Lightswitch Web應用程序。下面列出的步驟應適用於Lightswitch桌面應用程序

在您的lightswitch應用程序中啓用跟蹤。要做到這一點,我不得不修改位於發行Web.config文件/文件夾發佈(不設在你的項目源文件夾中的文件 - 的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應用程序。點擊左側的會話,然後點擊右側的Inspectors和Web Inspector。這應該詳細顯示錯誤消息。

欲瞭解更多信息,請參閱Bryan上面的答案或Eric Erhardt's article

+0

我們不能有兩個正確的答案嗎? – Omaer 2013-05-16 14:56:43

0

當我試圖添加一個沒有便攜式支持的參考文件時(它在我添加它時出現了一個警告,但我一開始沒有聽到)時發生在我身上。如果你這樣做,取消選中參考,它應該沒問題

+0

嗨...這個問題已經回答了。對我來說,問題是在64位Windows上使用損壞的machine.config文件。 (我發佈了一個單獨的問題[這裏](http://stackoverflow.com/questions/16591151/lightswitch-v1-desktop-application-doesnt-work-on-64bit-client))。不管怎麼說,還是要謝謝你! – Omaer 2013-06-01 07:24:17

0

我在更新我的MDF和LDF它開始工作後有同樣的問題。 含義是否對數據庫進行了任何更改,並且實體框架架構的更新不會與您看到此錯誤的情況相同。它在我的情況下工作

+0

'我更新了我的MDF和LDF它開始工作後有同樣的問題'你的意思是'停止',而不是'開始'? – 2017-09-02 02:49:24