我已經搜索了很多,並沒有什麼幫助,所以我在這裏。對象未能在Win7 x64上實例化
我已經在C#(任何CPU設置)中編寫了一個應用程序,該應用程序已經在Windows 7和XP x86上運行了一段時間,現在沒有錯誤。
最近我的辦公室已將我的工作站升級到Windows 7 x64(從x86)。
當我在Visual Studio 2010中運行我的應用程序時,在運行或編譯時沒有收到任何錯誤。它按設計工作。
我的VS2010的版本是10.0.30319.1 RTMRel從我們的MSDN訂閱,框架是4.0.30319 RTMRel
當我跑我的編譯的應用程序直接與我SqlConnection對象時收到錯誤。無論我選擇任何CPU還是x86,都會出現相同的錯誤。
在我的類文件,這是常規的:
public static SqlConnection getDBConnection()
{
SqlConnection sqlConn = null;
try
{
sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["KpH2Oprod"].ConnectionString);
sqlConn.Open();
}
catch
{
throw;
}
finally
{
if (sqlConn == null)
{
sqlConn.Dispose();
}
}
return sqlConn;
}
進行一些手動跟蹤,我發現了錯誤SqlConnection sqlConn = null;
後不被拋出時,它的第一個實例化,但是當我真正設置就行了:
sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["KpH2Oprod"].ConnectionString);
我已經改變了這行:
sqlConn = new SqlConnection();
sqlConn.ConnectionString = ConfigurationManager.ConnectionStrings["KpH2Oprod"].ConnectionString;
看我f它是SqlConnection或配置管理器,實際上它引發sqlConn = new SqlConnection();
行。實際上,這是我開始的方式,並將其更改爲以前的方式,無論如何,都會在使用新指令時拋出錯誤。
實際的錯誤消息我得到的回覆是(其中有一些是我自己的信息):
我認爲,這可能涉及到如何在SQL對象被註冊,但該消息中的中央截斷前幾行(不是我所做的)指向參數g爲空。再次,這在調試器中完美地工作。
RunTimeError :
Value cannot be null.
Parameter name: g
at System.Guid..ctor(String g)
at kpH2O.frmMain..ctor() (mscorlib)
ACTION :
UPDATEINCIDENT()
PROGRESS :
WORKING()
RunTimeError :
Object reference not set to an instance of an object.
at kpH2O.db.getDBConnection()
at kpH2O.db.getIncidentIDFromNumber(String incidentNumber)
at kpH2O.frmMain.updateHeatIncident() (kpH2O)
ERROR :
Process UPDATEINCIDENT: FAILED (doStartUp)
這是一個開箱即用的VS2010安裝沒有任何插件。任何援助非常感謝。
有沒有辦法捕捉原始異常/堆棧跟蹤? – RQDQ 2012-01-10 19:42:24
另外 - 有一個只有throw語句的catch子句沒有任何好處。 – RQDQ 2012-01-10 19:44:42
這裏和你的情況一樣http://weblogs.asp.net/fmarguerie/archive/2004/08/13/214135.aspx – 2012-01-10 19:45:56