2014-10-30 54 views
0

我有框架4 MVC 4項目,將引發System.AccessViolationException當您擴展使用HtmlHelper.ViewContext.Writer如何分析System.AccessViolationException上未知模塊

下面的代碼的HtmlHelper編譯就好:

public static void Test(this System.Web.Mvc.HtmlHelper helper) 
{ 
    System.IO.TextWriter writer = helper.ViewContext.Writer; 
    writer.WriteLine("<b>Test Output</b>"); 
} 

但是,當我在視圖中使用它會引發錯誤。現在我已經確認了導致問題的DLL,但我不知道要查找什麼,因爲錯誤消息沒有幫助,甚至沒有堆棧跟蹤。事情是這個項目是一個在VS2010上編寫的MVC3項目,現在我已更新到VS2013,並嘗試升級到MVC4,但問題已經開始,但奇怪的是,當我在VS2010上的其他MVC4項目上使用相同的DLL時, ,那麼它的工作,現在當我在Framework 4上做了一個乾淨的MVC4項目時,會發生這種情況。

我知道問題所在的DLL導致了問題,我確實有它的源代碼,但我不知道該找什麼。

我沒有測試其它擴展的方法和例如這工作得很好:

public static System.Web.Mvc.MvcHtmlString Test(this System.Web.Mvc.HtmlHelper helper) 
{ 
    return new System.Web.Mvc.MvcHtmlString("<b>Test Output</b>"); 
} 

所以它做的HtmlHelperViewContext,但什麼東西?

最簡單的事情就是簡單地改變擴展方法,但對公司策略我不允許這樣做,所以我需要弄清楚這一點。

我最大的問題是,有問題的DLL並不是真的由我寫的,只有我的電腦有VS2013,所以任何方向都會有幫助,例如尋找什麼或類似的東西。

+0

當您將解決方案升級到VS2013時,它是否將您項目的目標.NET平臺設置爲.NET 4.5?如果它是.NET 4.5,請參閱將其放到.NET 4.0是否解決此問題。 – ajawad987 2014-10-30 18:05:37

+0

@ ajawad987我確實檢查過它是.NET 4.0 – Idra 2014-10-30 18:06:40

回答

0

因此,經過大量的試驗和錯誤,我意外地從主項目中刪除了一個主MVC DLL。所以我使用NuGet在那裏恢復了MVC4。現在我使用更新來恢復它,並在那裏你去...解決。

新的MVC 4.0版本是4.0.40804.0如果您遇到同樣的問題,那麼只需通過NuGet更新MVC並解決問題即可。

相關問題