Tag: servicestack

ServiceStack:测试OrmLite,与NuGet一起安装,但是我收到错误“FileNotFoundException”

我刚刚在Visual Studio 2012中通过NuGet安装了OrmLite(用于MySql)。 安装过程没有任何错误,所有DLL:s似乎都被添加为参考: ServiceStack.Common (3.9.70.0) ServiceStack.Interfaces (1.0.0.0) ServiceStack.Text (3.9.70.0) ServiceStack.OrmLite (3.9.70.0) ServiceStack.OrmLite.MySql (3.9.70.0) 编译没有错误。 但是,当我运行此行时: dbConnCommOrm.CreateTableIfNotExists(); 然后我收到这个错误: 无法加载文件或程序集’ServiceStack.Common,Version = 3.9.69.0,Culture = neutral,PublicKeyToken = null’或其依赖项之一。 该系统找不到指定的文件。 ServiceStack.Common dll引用(通过NuGet)是版本3.9.70.0所以它不是很奇怪它找不到3.9.69.0。 问题是:为什么我需要3.9.69.0才能安装3.9.70.0? NuGet“脚本”(或者有效)是否有问题,或者我错过了什么? 奇怪的是,即使我在上面提到的行上得到一个例外,仍然可以正确创建表“ModuleSettings”! 此外,从GitHub下载ZIP文件并从那里解压缩DLL也不起作用:在ServiceStack.OrmLite-master \ lib中有三个第一个文件(见上文),由于某种原因,我发现ServiceStack.Ormlite.dll in ServiceStack.OrmLite-master \ lib / signed文件夹,但ZIP文件中没有ServiceStack.OrmLite.MySql.dll 。 我还可以补充说,安装旧版本也不起作用。 我试过这个: http : //www.nuget.org/packages/ServiceStack.OrmLite.MySql/3.9.69 PM> Install-Package ServiceStack.OrmLite.MySql -Version 3.9.69 它仍然安装了ServerStack.Common / Text v […]

ServiceStack:服务目录中的静态文件?

我正在将我的独立本土Web服务器转换为使用ServiceStack来提供所有页面和资源。 我从这个问题看出来 使用servicestack提供静态文件 使用Service Stack很容易提供单个静态文件。 在我的本土实现中,在检查URL是否匹配任何特定处理程序(相当于ServiceStack路由)之后,默认处理程序然后在其HttpData目录中检查静态文件以匹配URL。 如果该文件不存在,则会生成404错误。 如果没有其他服务匹配,ServiceStack用于从文件系统提供文件的最佳模式是什么? 请注意,我在没有IIS的独立模式下使用它。 这些文件可以是HTML,PNG,JS和少数其他内容类型。 注意:我看到ServiceStack.Razor包可能有助于我的要求,但我找不到它的文档。 我将就此提出一个单独的问题。 编辑 :我在这个问题中找到了一个参考 使用ServiceStack为根路径’/’创建路由 说明 注册IAppHost.CatchAllHandlers – 调用未匹配的请求。 到目前为止,我还没有找到任何关于如何注册的文档或示例。 注意:我是独立运行的,因此需要在C#中完成,而不是使用XML。

ServiceStack IReturn

我正在看两周前发布的新api。 这好像是 ReqDTO : IReturn<List> { //… } “IReturn”位似乎是可选的? RazorRockstars演示项目中的DTO在没有它的情况下工作。

XML反序列化仅适用于xml中的命名空间

我使ServiceStack xml反序列化工作的最简单方法是xml包含命名空间。 但是,我收到的xml不包含名称空间。 最简单的工作示例: [Serializable] public class test { } class Program { static void Main(string[] args) { string xml=””; var result = ServiceStack.Text.XmlSerializer.DeserializeFromString(xml); } } 但是,这不是我想要的。 我希望以下代码反序列化,因为这是我从几个服务获得的xml: string xml=””; 但这给了我以下错误: DeserializeDataContract: Error converting type: Error in line 1 position 7. Expecting element ‘test’ from namespace ‘http://schemas.datacontract.org/2004/07/’.. Encountered ‘Element’ with name ‘test’, namespace ”. 我试过了: […]

ServiceStack Razor身份validation

我正在查看Rockstars示例和ServiceStack.Razor。 我如何将身份validation纳入secure.cshtml页面。 因此,如果需要,我可以将用户重定向到Login.cshtml。 我只从SocialBootstrapApi例子中了解如果我混合使用MVC hybird,我可以将[authenticate()]放在ServiceStackController上来实现。 但是,如果我只想要一个没有.net MVC的纯SS项目呢?

ServiceStack REST服务中的自定义exception处理

我有一个ServiceStack REST服务,我需要实现自定义error handling。 我已经能够通过将AppHostBase.ServiceExceptionHandler设置为自定义函数来自定义服务错误。 但是,对于其他类型的错误,例如validation错误,这不起作用。 我怎样才能涵盖所有案件? 换句话说,我正在努力实现两件事: 为可能弹出的每种exception设置我自己的HTTP状态代码,包括非服务错误(validation) 为每种错误类型返回我自己的自定义错误对象(不是默认的ResponseStatus) 我将如何实现这一目标?

超媒体链接Servicestack新API

我正在评估如何向DTO响应添加超媒体链接。 虽然没有标准,但在响应中添加List DTO似乎是建议的方法 。 您是否知道使用ServiceStack框架的任何实现示例或参考? 添加列表对我来说没问题,但我怀疑的是在哪里放置以下链接的逻辑(在服务或包含状态机的专用类中?)以及解决路由的位置(filter?) 谢谢。 [更新]从ServiceStack版本v3.9.62开始,可以通过EndpointHost.Config.Metadata.Routes.RestPath访问路由配置,因此tgmdbm提供的解决方案可以在不需要“IReturn + Routes属性”的情况下得到改进,只需使用元数据.Routes信息。 实际上,可以查询所有服务元数据并将其用于横切关注点。 Servicestack岩石。

ServiceStack.Net的多个可选参数

我正在尝试使用ServiceStack.Net实现具有多个可选参数的服务 目前我的路线看起来像这样 Routes.Add(“/save/{Year}/{Week}”); 我想像这样支持uris: /保存/ 2010/12 /星期一/ 4 /日/ 6 /日/ 7 即星期一= 4,星期二= 6,星期三= 7 但是我希望能够忽略几天,即调用服务的人可以决定是否要保存每天的每个值… 即像这样缺少参数值 ?星期一= 4&周三= 7&周五= 6 当然,一种解决方案是使用以下路由,当我不想保存值时只传递0。 Routes.Add(“/save/{Year}/{Week}/{Monday}/{Tuesday}}/{Weds}/{Thurs}/{Fri}/{Sat}/{Sun}”); 但是…..有没有更好的方法来实现这个function?

ServiceStack客户端添加附件

我正在使用ServiceStack.ServiceClient.Web.XmlServiceClient连接到Web服务。 有没有办法在请求中添加附件? 更多信息: 我想要做的是避免使用Microsoft.Web.Services2,因为我使用的是Mono。 我正在尝试上传XML数据文件以及XML请求。 就像这个问题一样: 通过C#.net中的webservice将报表单元上传到jasperserver

Redis Expire不起作用

我使用ServiceStack.Redis(从最新的源代码构建: https : //github.com/ServiceStack/ServiceStack.Redis/tree/master/src )。 我做这样的事情: CacheRecord foundKey = cacheRecords.GetById(p_sParentKey); … CacheRecord cacheRecord = cacheRecords.Store(foundKey); … redisClient.Expire(p_sParentKey, validityPeriodInMinutes * 60); 我尝试使用Console.WriteLine(cacheRecords.GetTimeToLive(p_sParentKey));进行调试Console.WriteLine(cacheRecords.GetTimeToLive(p_sParentKey)); 返回-00:00:01 。 我分配给validityPeriodInMinutes的值是无关紧要的。 我试过Expire , ExpireAt , ExpireEntryAt , ExpireEntryIn 。 我也试过这样的事情: int epoch = (int)(DateTime.UtcNow.AddSeconds(validityPeriodInMinutes) – new DateTime(1970, 1, 1)).TotalSeconds; redisClient.ExpireAt(p_sParentKey, epoch); 任何的想法? [Serializable] public class CacheRecord { public CacheRecord() { this.Children = […]