【トラブル】【ASP.NET MVC】ASP.NET MVCにおけるトラブルシューティング

■ファイルをリネームした後に実行したらエラー「The view ...」が表示

 * ファイルのリネームをやってたら、実行した後に、以下のエラー内容がブラウザに表示された

エラー内容

The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Hello/Index.aspx
~/Views/Hello/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/Hello/Index.cshtml
~/Views/Hello/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml

説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。 

例外の詳細: System.InvalidOperationException: The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Hello/Index.aspx
~/Views/Hello/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/Hello/Index.cshtml
~/Views/Hello/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml

ソース エラー: 

現在の Web 要求の実行中にハンドルされていない例外が生成されました。障害の原因および発生場所に関する情報については、下の例外スタック トレースを使って確認できます。

スタック トレース: 
...略...

原因

 * 「App_Start/RouteConfig.vb」の記述に誤りがあった

~~~~
Public Module RouteConfig
    Public Sub RegisterRoutes(ByVal routes As RouteCollection)
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}")

        routes.MapRoute(
            name:="Default",
            url:="{controller}/{action}/{id}",
            defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} ' ★「.controller = "Home"」ではない
        )
    End Sub
End Module

解決策

 * 「App_Start/RouteConfig.vb」を修正する

RouteConfig.vb

Public Module RouteConfig
    Public Sub RegisterRoutes(ByVal routes As RouteCollection)
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}")

        routes.MapRoute(
            name:="Default",
            url:="{controller}/{action}/{id}",
            defaults:=New With {.controller = "Hello", .action = "Index", .id = UrlParameter.Optional} ' ★「.controller = "Hello"」に修正
        )
    End Sub
End Module

■ダウンロード時にエラー「'C:\temp\demo.xls' は有効な仮想パスではありません。」が表示

 * ファイルのリネームをやってたら、実行した後に、以下のエラー内容がブラウザに表示された

エラー内容

'C:\temp\demo.xls' は有効な仮想パスではありません。

エラー時のサンプル

Dim fileName = "demo.xls"
Dim serverPath = "C:\temp\" & fileName
workBook.SaveAs(serverPath)

' Excelを終了する
excelApplication.Quit()

Return File(serverPath, "application/ms-excel", fileName)

解決策

 * 「Server.MapPath()」を使用する

# フルコードは以下の関連記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/36015198.html

関連記事

ASP.NET MVCに関するトラブル

Response.HeadersからPlatformNotSupportedExceptionが発生する
https://blogs.yahoo.co.jp/dk521123/35869367.html
Bundle機能を使った最小化(Minify)が失敗する際のトラブルシューティング
https://blogs.yahoo.co.jp/dk521123/35854758.html
「System.Web.WebPages.StartPage から継承しません」が表示
https://blogs.yahoo.co.jp/dk521123/35638310.html

その他

VBASP.NET MVC 5 ~ Hello World的なアプリ作成 ~
http://blogs.yahoo.co.jp/dk521123/25390191.html