标签: servicestack

将Datetime作为查询字符串参数传递给Servicestack.net GET方法时出错

我尝试将DateTime对象作为查询字符串参数传递给使用ServiceStack.net构建的Web服务方法.

传递时日期是正确的URL编码但我不断收到以下错误:

"Message":"KeyValueDataContractDeserializer: Error converting to type: String was not recognized as a valid DateTime.
Run Code Online (Sandbox Code Playgroud)

有关如何纠正此问题的任何想法?

以下是我传递的URL编码DateTime的示例:2%2f24%2f2012 + 5%3a13%3a02 + PM

.net c# asp.net asp.net-mvc servicestack

2
推荐指数
1
解决办法
4152
查看次数

2
推荐指数
1
解决办法
420
查看次数

如何让Node.js REST客户端能够与ServiceStack JSON服务进行通信

我在使用Node.js编写的休眠客户端能够将数据(通过GET)发送到基于ServiceStack JSON的服务时遇到问题.它给了我一个序列化错误.但是,我已经将相同的JSON(由我的Node.js rest客户端生成)复制并粘贴到通过CURL发送的ServiceStack服务调用中,而ServiceStack没有出现JSON问题 - 再次...仅作为只要它来自CURL.

任何指针或任何人可以进一步启发的启示将不胜感激!

谢谢,

塔米

node.js servicestack

2
推荐指数
1
解决办法
2444
查看次数

ConvertToList中的NullReference异常(ServiceStack OrmLite)

我在应用程序中使用OrmLite进行数据访问.在4个环境中的3个环境中,一切都按预期工作.

所有环境都在运行.net 4.5.数据库运行的版本不同.失败的环境是连接到sql server 10.50.2796,工作环境连接到sql server 10.50.4000.

System.Data*程序集的版本在无法正常工作的服务器上是相同的.

堆栈跟踪:

System.NullReferenceException:未将对象引用设置为对象的实例.位于服务堆栈的ServiceStack.OrmLite.ReadExtensions.ConvertToList [T](IDataReader dataReader)的lambda_method(Closure,Object,Object)中的C:\ src\ServiceStack.OrmLite\src\ServiceStack.OrmLite\Expressions\ReadExtensions.cs:第151行.OrmLite.ReadExtensions.Select [T](IDbCommand dbCmd,Expression 1 predicate) in C:\src\ServiceStack.OrmLite\src\ServiceStack.OrmLite\Expressions\ReadExtensions.cs:line 23 at ServiceStack.OrmLite.ReadConnectionExtensions.Exec[T](IDbConnection dbConn, Func2过滤器)在C:\ src\ServiceStack.OrmLite\src\ServiceStack.OrmLite\Expressions\ReadConnectionExtensions.cs:第26行

更新 我认为这是一个与我连接的sql server版本相关的错误.如果我在工作环境中更改连接字符串以使用运行10.50.2796的数据库,则会遇到相同的错误.

TIA,杰森

servicestack ormlite-servicestack

2
推荐指数
1
解决办法
528
查看次数

ServiceStack中的Fluent验证没有错误消息

我刚刚开始熟悉ServiceStack并且已经开始使用FluentValidation了.我已经按照介绍并创建了一个小型Hello应用程序.

我的问题是,当我尝试验证请求DTO时,没有返回错误消息来描述验证失败的方法,只有空白的Json对象{}.

我自己,我认为验证是自动连接到DTO所以我不需要编写任何额外的代码.

答案可能是公然但我看不到它.任何帮助将不胜感激.我的代码如下:

namespace SampleHello2
{
    [Route("/hello")]
    [Route("/hello/{Name}")]
    public class Hello
    {
        public string Name { get; set; }
    }

    public class HelloResponse
    {
        public string Result { get; set; }
    }


    public class HelloService : Service
    {
        public object Any(Hello request)
        {
            return new HelloResponse { Result = "Hello, " + request.Name };
        }
    }

    public class HelloValidator : AbstractValidator<Hello>
    {
        public HelloValidator()
        {
            //Validation rules for all requests
            RuleFor(r => r.Name).NotNull().NotEmpty().Equal("Ian").WithErrorCode("ShouldNotBeEmpty"); …
Run Code Online (Sandbox Code Playgroud)

c# fluentvalidation servicestack

2
推荐指数
1
解决办法
1721
查看次数

如何将ormlite注入或连接到ServiceStack存储库?

我想从存储库而不是服务类访问数据库(为了增加分离 - 不确定这是否有点过分)即

public class TodoRepository // : BaseRepository derive the class and inject IDbConnection somehow? 
{        
    public List<Todo> GetByIds(long[] ids)
    {
        return Db.Select<Todos>(t => Sql.In(t.id, ids));   <-- how to get 'Db' in here
    }
}
Run Code Online (Sandbox Code Playgroud)

服务基类已经允许使用'Db'对象通过ormlite直接访问数据库,因此:

public class Service : IService, IRequiresRequestContext, IServiceBase, IResolver, IDisposable
{
    public virtual IDbConnection Db { get; }
}
Run Code Online (Sandbox Code Playgroud)

让我相信我可以这样做,所以我可以在派生类中使用'Db':

public class BaseRepository: IDisposable
{
    public virtual IDbConnection Db { get; }
}
Run Code Online (Sandbox Code Playgroud)

我的AppHost中有这一行来传递连接字符串并注册存储库:

container.Register<IDbConnectionFactory>(c => new OrmLiteConnectionFactory(connectionString, SqlServerDialect.Provider));
container.Register(new TodoRepository());
Run Code Online (Sandbox Code Playgroud)

如何将IDbConnection注入或自动装载到BaseRepository类?我已经尝试在AppHost中注册并自动装配BaseRepository而没有运气.

repository servicestack funq ormlite-servicestack

2
推荐指数
1
解决办法
1679
查看次数

servicestack使用RouteAttribute在AppHost VS装饰器中注册路由

我想知道ServiceStack注册路由的最佳做法是什么.

  1. 使用AppHost中的Routes.Add定义路由
  2. 使用DTO上的RouteAttiribute装饰器定义路线

我已经阅读了一些在AppHost中这样做的地方,因为它将路线定义与DTO分离.但我看到的大多数例子都是使用装饰器模式.

哪个更好?是否有任何争论使用一个而不是另一个?

asp.net servicestack

2
推荐指数
1
解决办法
295
查看次数

ServiceStack联接3个表

是否可以使用ServiceStack联接2个以上的表?我尝试过类似的方法,但是我需要链接evrything:

// Join PatientDetails and BedDetails
SqlExpression<PatientDetails.PatientDetails> q = _dbConnection.From<PatientDetails.PatientDetails>();
q.Join<PatientDetails.PatientDetails, BedDetails.BedDetails>((patient, bed) => patient.ByBedId == bed.BedDetailsId);
List<PatientDetails.PatientDetails> PatientBedJOIN = _dbConnection.Select(q);

// Join PatientSession and PatientDetails
SqlExpression<PatientSession> q1 = _dbConnection.From<PatientSession>();
q1.Join<PatientSession, PatientDetails.PatientDetails>((session, patientd) => session.ByPatientId == patientd.PatientDetailsId);
List<PatientSession> SessionPatientJOIN = _dbConnection.Select(q1);
Run Code Online (Sandbox Code Playgroud)

我正在使用OrmLite和Sqlite,谢谢

c# sqlite servicestack ormlite-servicestack

2
推荐指数
1
解决办法
2110
查看次数

System.IO.IOException:打开的文件太多

在Mac OS X上调试我的ServiceStack Web应用程序时,我间歇性地收到此错误.

我似乎无法确定它是什么,我尝试使用此命令杀死xamarin Web服务器:

ps aux | grep xsp4 | grep -v grep | awk '{print $2}' | xargs kill -9
Run Code Online (Sandbox Code Playgroud)

我已经尝试续订DHCP租约并清除DNS缓存.甚至尝试重启整个Mac.

请注意,代码似乎没有任何问题,因为当我使用此命令手动运行Xamarin Web服务器时:

xsp4 --root ~/Development/PROJ_FOLDER --port 8080
Run Code Online (Sandbox Code Playgroud)

它运行正常......我只是在从Xamarin Studio运行应用程序时才看到问题.

有任何想法吗?

macos servicestack xamarin-studio

2
推荐指数
1
解决办法
1805
查看次数

ServiceStack单元test- serviceStack响应对象未初始化

我使用Nunit框架为ServiceStack apis编写单元测试.代码如下

public class AppHost : AppHostBase
{
    public AppHost()
        : base("SearchService", typeof(SearchService).Assembly)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

服务类如下

public class SearchService:Service
{
   public SearchResponse Get(SearchRequest request)
   { 
     // to stuff
     Response.StatusCode = (int)HttpStatusCode.OK;
     return SearchReponse;
   }
}
Run Code Online (Sandbox Code Playgroud)

单元测试类如下

 [TestFixture]
public class SearchServiceTests
{
    private readonly ServiceStackHost appHost;

    public SearchServiceTests()
    {
        appHost = new BasicAppHost(typeof(SearchService).Assembly)
        {
        }.Init();

    }
     [TestFixtureTearDown]
    public void TestFixtureTearDown()
    {
        appHost.Dispose();
    }


    [Test]

    public void TestMethod1()
    {
        var service = appHost.Container.Resolve<SearchService>();

        var r= service.Get(new SearchRequest());

       Assert.That(r, Is.Not.Null);

    }
    } …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing servicestack nunit-3.0

2
推荐指数
1
解决办法
436
查看次数