这是我的页面加载事件的一部分
protected void Page_Load(object sender, EventArgs e)
{
string v = Request.QueryString["File"];
string q = Request.QueryString["Quote"];
if (v != null)
{
int temp;
if (int.TryParse(v, out temp))
{
FileStruct fs = BlobDA.GetBlobFileStruct(temp);
string url = FileStorage.getBlobFile(fs);
Response.Redirect(url);
}
}
if (q != null)
{
QuoteInfo qiQuote = Utility.getQuoteObject(int.Parse(q));
Session.Add("Quote", qiQuote);
}
// CODE BELOW DOES ISN'T RUN -----------
QuoteInfo objQuote = (QuoteInfo)Session["Quote"];
lstLouverStruct = objQuote.LstLouverStruct;
structSpecs = objQuote.StructSpecs;
structCustomer = objQuote.StructCustomer;
structVendor = objQuote.StructVendor;
// --------------------------------------
var dt = Utility.GetDatatableList(lstLouverStruct);
var html = Utility.BuildString("Dims", dt);
phDims.Controls.Add(new Literal { Text = html.ToString() });
注释行之间的代码未运行。
我无法在调试窗口中看到指定代码中的变量,因此它将以下代码从if (q != null)
语句跳到var dt = ...
我注意到在调试页面加载q != null
时,这基本上意味着传递了包含引号的查询字符串,并且我将引号发送到重新创建{{{ 1}} object,然后我将该对象添加到会话变量中。然后,在跳过的代码中,我将该对象从会话变量中取出并使用它。基本上,如果QuoteInfo
是q == null
,那么已经存在会话变量引用,以便条件可以更改会话变量中的对象。无论如何,我在调试器中按照代码设置会话变量,然后跳过上面提到的代码。
不确定这是否相关但由于某种原因,即使我正在调试优化关闭,调试器中的所有变量似乎都已优化。
任何帮助将不胜感激
更新------------------
无论如何构建重建和清理似乎已经解决了问题谢谢Jason
答案 0 :(得分:1)
这是因为调试器正在使用的PDB实际上与正在运行的字节代码不匹配。其中一个最常见的原因是调试发布版本,正如评论所提到的那样。其他问题包括被引用的旧/ stale dll以及未被清理的旧pdb文件。尝试以下每个修复程序(按严重性顺序):