1
我已經使用ServiceStack的免費版本數年,並且最近購買了v4以供項目使用。Service's Db在ServiceStack v4中爲null
我已經通過發行票據和相關的博客閱讀,但找不到我遇到的問題的任何指導......
在作出我堅持一個NullReferenceException上ServiceStack發行說明中定義的所有相應的改變.Service.get_Db()。下面是一些代碼段,這可能有助於:
Global.asax中......
using Funq;
using ServiceStack;
using ServiceStack.OrmLite;
using ServiceStack.Data;
using ServiceStack.Caching;
using ServiceStack.MiniProfiler;
using ServiceInterface;
using System.Web;
using System;
namespace WebRole
{
public class AppHost : AppHostHttpListenerBase
{
public AppHost() : base("Web Services", typeof(CompaniesService).Assembly) { }
public override void Configure(Container container)
{
container.Register(new OrmLiteConnectionFactory(@"Server=tcp:myServer.database.windows.net,1433;Database=myDatabase;User ID=myUser;Password=myPassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;", SqlServerDialect.Provider));
using (var resetCompanies = container.Resolve<ResetCompaniesService>())
{
resetCompanies.Any(null);
}
ResetCompanies.cs ...
using System;
using System.Collections.Generic;
using ServiceStack.OrmLite;
using ServiceStack;
using ServiceModel.Types;
namespace ServiceInterface
{
[Route("/reset-Companies", "GET,POST")]
[Api("Resets the database back to the original Top 3 movies.")]
public class ResetCompanies : IReturn<ResetCompaniesResponse>
{
}
/// <summary>
/// Define your ServiceStack web service response (i.e. Response DTO).
/// </summary>
public class ResetCompaniesResponse
{
}
/// <summary>
/// Create your ServiceStack rest-ful web service implementation.
/// </summary>
public class ResetCompaniesService : Service
{
public static List<Company> Top3Companies = new List<Company>
{
new Company
{
Code = "C1",
Name = "Company 1"
},
new Company
{
Code = "C2",
Name = "Company 2"
},
new Company
{
Code = "C3",
Name = "Company 3"
}
};
public object Any(ResetCompanies request)
{
//Executes the specified delegate against the configured database.
Db.DropAndCreateTable<Company>();
Db.SaveAll(Top3Companies);
return new ResetCompaniesResponse();
}
}
}
的NullReferenceException異常發生在
Db.DropAndCreateTable<Company>();
這裏的堆棧跟蹤
at ServiceStack.Service.get_Db()
at ServiceInterface.ResetCompaniesService.Any(ResetCompanies request) in c:\Users\me\Documents\Visual Studio 2013\Projects\Project1\ServiceInterface\ResetCompanies.cs:line 51
at WebRole.AppHost.Configure(Container container) in c:\Users\me\Documents\Visual Studio 2013\Projects\Project1\WebRole\Global.asax.cs:line 23
at ServiceStack.ServiceStackHost.Init()
at WebRole.Global.Application_Start(Object sender, EventArgs e) in c:\Users\me\Documents\Visual Studio 2013\Projects\Project1\WebRole\Global.asax.cs:line 35
有沒有人有任何想法?當然,看起來像V4,我錯過了還是我不知道的另一個重大更改...
啊!錯過了,感謝神話! – Drammy