2015-05-19 60 views
1

我正在使用Visual Studio 2012和HP Fortify 4.21以及最新的規則包。HP Fortify掃描得到ASP預編譯錯誤

代碼(C#)生活有HP Fortify的同一臺機器上,我只能用AWB沒有SCC。代碼在開發人員構建時成功構建,但是當我嘗試使用Fortify進行掃描時,出現錯誤。

ASP預編譯錯誤

發生此錯誤是否我從VS或命令行啓動。日誌顯示沒有錯誤或警告,但最後說沒有什麼要存儲,所以fpr文件永遠不會被創建。如果我從Audit Workbench運行掃描,它只會崩潰,說明它無法創建構建ID。

我沒有找到一個建議(下)來解決ASP問題,但它失敗並不會創建FPR文件能夠運行的最後一行(做掃描)。

我很感激任何幫助!

步驟1:清潔 sourceanalyzer -b 「構建ID」 -clean

步驟2:翻譯/構建 sourceanalyzer -b 「構建ID」 -Xmx1280M -Xss8M -debug -logfile trans.log devenv的「樣品的.sln」 /重建調試

第3步:分析 sourceanalyzer -b 「構建ID」 我碰到類似-Xmx1280M -Xss8M -debug -logfile scan.log型掃描-f Results.fpr

回答

0

問題。在另一臺機器上試用它。有時候這會使它工作。當它不是由於一個Fortify錯誤。使用Fortify支持幫助我跟蹤問題。儘管我不相信它有幫助,但惠普在它上面記錄了一個錯誤。也就是說,一旦我知道文件中的結構導致了失敗,我就可以修改該文件以使Fortify完成。

對不起,我沒有更多的幫助。

+0

我已將代碼移至2臺其他機器並運行相同的問題。感謝您的建議。 – quinnles

0

問題是與一個或一個以上的ASPX文件。對於dotnet Web表單,ASPX頁面不是由Visual Studio編譯的,而是在服務器上動態編譯的。爲了使Fortify掃描該代碼,它正在調用ASPNET_compiler來編譯你的ASPX文件。從命令行傳遞-debug,然後在日誌中查找對ASPNET_compiler的調用。您可以複製這些參數,然後在Visual Studio命令提示符下運行它們以查找導致該問題的ASPX文件。請記住,當傳遞ASPNET_compiler一個目錄進行編譯時,它會在發現第一個錯誤時死亡。您可能需要運行幾次才能找到所有錯誤。

+0

非常感謝您的建議,我會嘗試這看能不能縮小它。 – quinnles

0

檢查AWB中的「分析信息」選項卡以查看相關的掃描錯誤。另外還要查看掃描日誌文件中的相關條目。

如果埃裏克是正確的,你可能要重新出現,把sourceanalyzer到構建腳本的情況下的問題。

+0

我會記住這一點,感謝您的建議。 – quinnles

2

我也陷入了這個問題,這把我的問題的關心。

步驟1.單擊「構建」選項卡 第2步。單擊「清理解決方案」 第3步。最有可能在解決方案資源管理器(bin和obj)中出現兩個文件夾。右鍵單擊每一個並將其刪除,無論按照什麼順序執行。 第4步。點擊「生成」選項卡 步驟5.單擊「重新生成解決方案」 步驟6.再次嘗試

額外的步驟 第7步:運行設防如果仍然不工作檢查你的web.config中的錯誤。該項目將會出現錯誤,但會導致Fortify預編譯失敗。

第8步:嘗試通過轉到HP Fortify - >選項 - >項目設置 - >內存(MB) - > 1024(或更高)來爲Fortify分配更多的RAM。

+0

我剛遇到這個非常煩人的錯誤。這個建議立即奏效。謝謝! –

0

第1步 - 點擊「build」標籤 第2步 - 點擊「clean solution」 第3步 - 解決方案資源管理器(bin,obj)中出現了2個文件夾。右鍵單擊
各1個,刪除它,沒關係秩序。第4步,點擊「生成」選項卡第5步點擊「重建解決方案」第6步試運行設防再次

額外的步驟 第7步。 - f仍然無法檢查web.config錯誤。項目構建錯誤會導致預編譯失敗。

第8步 - 嘗試分配更多ram強化hp防禦 - >選項 - >項目設置 - >內存(mb) - > 1024(或更高)。

下面的鏈接有助於解決我的問題。 http://nayviocde12.blogspot.be/2012/08/aspnet-hp-fortify-scans-get-asp-pre.html

0

Fortify的SCA版本16.20後

與Fortify的SCA版本16.20開始,ASP.Net代碼不再使用微軟aspnet_compiler.exe所以不會再出現這個特殊問題。

Fortify的SCA版本之前16.20

我首選的調試預編譯器問題的方法是將這個命令添加到Visual Studio中的Web項目的生成後事件,這樣的錯誤在錯誤顯示出來名單。

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe" -v/-p $(ProjectDir) 

另一件事要記住,如果你有沒有解決方案的一部分,但在Web項目目錄中的文件,將aspnet_compiler仍然會閱讀。

當開發人員從Visual Studio中排除文件時,我發現這種情況很常見。這不會刪除它們。或者,如果他們刪除它們,然後通過Visual Studio界面刪除,但不從底層的源代碼存儲庫中刪除,他們只是在結帳時再次下載。

一個簡單的方法來檢查這將打開在Visual Studio解決方案資源管理器窗口中顯示所有文件。