ServiceStack の使用方法を学んでいますが、過去に取得できないという例外が発生し、何が例外の原因なのかわかりません。ここにあります:
Handler for Request not found:
Request.ApplicationPath: /
Request.CurrentExecutionFilePath: /entry/5/11-11-2012
Request.FilePath: /entry/5/11-11-2012
Request.HttpMethod: GET
Request.MapPath('~'): C:\Projects\Tutorials\FirstServiceStackApp\FirstServiceStackApp\
Request.Path: /entry/5/11-11-2012
Request.PathInfo:
Request.ResolvedPathInfo: /entry/5/11-11-2012
Request.PhysicalPath: C:\Projects\Tutorials\FirstServiceStackApp\FirstServiceStackApp\entry\5\11-11-2012
Request.PhysicalApplicationPath: C:\Projects\Tutorials\FirstServiceStackApp\FirstServiceStackApp\
Request.QueryString:
Request.RawUrl: /entry/5/11-11-2012
Request.Url.AbsoluteUri: http://localhost:52920/entry/5/11-11-2012
Request.Url.AbsolutePath: /entry/5/11-11-2012
Request.Url.Fragment:
Request.Url.Host: localhost
Request.Url.LocalPath: /entry/5/11-11-2012
Request.Url.Port: 52920
Request.Url.Query:
Request.Url.Scheme: http
Request.Url.Segments: System.String[]
App.IsIntegratedPipeline: True
App.WebHostPhysicalPath: C:\Projects\Tutorials\FirstServiceStackApp\FirstServiceStackApp
App.WebHostRootFileNames: [entry.cs,entryservice.cs,firstservicestackapp.csproj,firstservicestackapp.csproj.user,global.asax,global.asax.cs,packages.config,recordipfilter.cs,statusquery.cs,statusservice.cs,web.config,web.debug.config,web.release.config,app_data,bin,obj,properties,scripts,x64,x86]
App.DefaultHandler: metadata
App.DebugLastHandlerArgs: GET|/entry/5/11-11-2012|C:\Projects\Tutorials\FirstServiceStackApp\FirstServiceStackApp\entry\5\11-11-2012
私は ServiceStack に関する John Sonmez の優れた Pluralsight コースを受講しており、OrmLite の一部を私のプロジェクトに追加しました。この例外は、新しいエントリを追加しようとするとスローされます。そのため、App_Data フォルダーにはまだ SqlLite ファイルがなく、何も作成されません。デバッグしようとしてもコードが壊れていないので、どこを探すべきかわかりません...
編集:関連するソースコードを追加:
[Route("/entry/{Amount}/{EntryTime}", "POST")]
public class Entry { ... }
public class EntryService : Service
{
public TrackedDataRepository TDRepository { get; set; }
public object Any(Entry request)
{
var id = TDRepository.AddEntry(request);
return new EntryResponse {Id = id};
}
}
解決:
Route 定義のPOSTフィルターを削除して、すべてのルートに適用されるようにします。
[Route("/entry/{Amount}/{EntryTime}")]