问题标签 [servicestack-bsd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
106 浏览

asp.net-mvc-3 - 为什么 ServiceStack 的 SaveUserAuth 不保存到数据库?

我试图让用户能够更改他们恰好在IAuthSession界面中的显示名称并将更改提交到数据库。

我通过以下方式注册一个容器AppHost

然后在我的服务中,我执行以下操作:

尽管代码命中_userAuthRepository.SaveUserAuth,但没有引发异常并且没有返回任何内容,因为该方法是无效的。但是,数据实际上并没有提交到数据库。在这种特殊情况下,MongoDB。

任何想法为什么它不保存它或者如果出现问题为什么不抛出异常?

0 投票
1 回答
1320 浏览

serialization - 如何为返回类型为 void 的方法返回一个空的 JSON 对象?

要求:

{}当我的 ServiceStack 服务方法的返回类型为 时,我正在寻找一种返回空 JSON 对象(例如)的方法void

推理:

想要为类型返回空 JSON 对象的void原因是 jQuery 处理内容类型的方式application/json。正如这里所讨论200 - OK的,当收到一个没有内容的状态时,jQuery 会抛出一个错误。这是当前返回的无效内容。

预见问题:

我希望有一种简单的方法可以序列化void{}.

  • 如果这是可能的,这样做会产生不利后果吗?
  • 它会在预期时影响 ServiceStack c# 客户端void吗?
0 投票
1 回答
331 浏览

servicestack - ServiceStack BSD 版本 3.9.71 和 protobuf-net 版本

我从 Nuget 下载了 ServiceStack BSD 版本 3.9.71

使用命令

安装包 ServiceStack -版本 3.9.71

和安装包 ServiceStack.Plugins.ProtoBuf -Version 3.9.71

我还安装了 protobuf-net

安装包 protobuf-net

但我有问题,因为 ServiceStack 3.9.71 试图找到 protobuf-net ver.2.0.0.640,

当 Nuget 的 protobuf 的最后一个版本是 2.0.0.668

0 投票
2 回答
273 浏览

c# - 在验证器中访问 Servicstack.net 会话

如何在我的验证代码中访问 ServiceStack.net 会话?

在服务实现中,我只是这样做:

但这不适用于我的抽象验证器。

谢谢!

编辑:这是版本 3.9.71.0

0 投票
2 回答
1464 浏览

redis - 如何将我的自定义 ServiceStack 身份验证提供程序与 Redis 一起使用?

我已经CredentialsAuthProvider为我的身份验证实现了一个自定义,并将其与内存会话存储中的默认值一起使用。

现在我尝试将会话存储更改为 Redis 并将其添加到我的Configure()方法中AppHost

现在,当我进行身份验证时,我可以看到urn:iauthsession:...我的 Redis 服务器中添加了一个密钥。[Authenticate]但是所有具有该属性的路由都会401 Unauthorized出错。

是这样实现的CustomCredentialsAuthProvider

服务栈版本:3.9.71

编辑 :

我试图覆盖该CredentialsAuthProvider IsAuthorized方法但没有成功。

但是我从 继承了我的会话对象AuthUserSession,它也有一个IsAuthorized方法。当我从此方法返回 true 时,Redis 会话确实与Authenticate属性一起工作。

0 投票
1 回答
868 浏览

c# - 自托管服务器中的 ServiceStack 会话为空

Sessionin有问题ServiceSession正在null第二次通话(已解决,请参阅帖子底部)。

JsonServiceClient我有自托管服务器和客户端,它们通过和调用服务器ProtoBufServiceClient

在启动客户端应用程序时,我调用:

它有效 -OnAuthenticated它在我的CustomUserSession : AuthUserSession.

没有帮助。

然后在一节课上:

Get方法 Session is中的服务类存在问题null。如果我实施

我会得到:仅支持通过单例访问的 ASP.NET 请求。

我的 AppHost.cs

目标:

从客户端发送一些变量并在主机上记住它们,直到用户注销。

编辑:

我的工作流程如下所示:

某类1:

  • 新的身份验证服务客户端->Post(new Auth(...)); // 登录正常
  • 而已

某类2:

  • 新服务客户端->Put(new E); // 一些初始化。
  • 服务客户端->Get(new G);

服务 G:

  • 在 G 请求新服务客户端 TryResolve();
  • 客户端->获取(新 W)

服务 E

  • 在 E 请求 CustomUserSession 可访问
  • 在 W 请求 CustomUserSession 时无法访问。

我的 Custom* 课程看起来像 Scott 的回答。

编辑:

这是我准备复制和粘贴的问题的代码:

解决方案(针对此问题):

  1. 在客户端应用程序中保存会话 cookie,并在每次调用 Web 服务之前恢复它们。
  2. 使用 Service::Resolve() 代替 Service::TryResolve
0 投票
1 回答
2682 浏览

c# - 获取 ServiceStack 实例的基本 URL

确定运行 ServiceStack 实例的基本 URL 路径的最佳方法是什么?例如,如果我将 ServiceStack 配置为在 web.config 中的“/api”基本 URL 上运行,我如何获取字符串“/api”?我想获取此值以构建任意请求 DTO 的 URL,作为 HATEOAS 样式文档。

例如,如果我有一个SomeRequest带有[Route("/someRequest")]属性的请求 DTO,则此请求的完整 URL 将是“/api/someRequest”。ToUrl扩展方法仅返回基本 URL 下方路径的一部分:

我还没有找到任何简单的方法来做到这一点。似乎 ServiceStack 没有公开返回“/api”基本路径值的配置属性。使用 ServiceStack 4 可能可以检查 web.config以获取 ServiceStack 处理程序路径,但我无法弄清楚如何使用我们当前的 SS 3 配置来执行此操作。

Request.GetAbsolutePath()方法将生成当前请求的完整路径,例如“/api/someRequest”,然后我可能会在此方法和ToUrl()扩展方法之间进行一些字符串比较以确定基本路径,但这似乎也是一个非常脆弱的解决方案.

有没有更好的方法来获取这个基本 URL?

0 投票
1 回答
416 浏览

c# - ServiceStack + FluentValidation 未通过 ResolveService 触发

我正在使用ServiceStack + FluentValidation v3。

我可以直接发布到 API 并体验请求验证,但是,当从我的 MVC 控制器中已解析的服务实例调用时,不会触发验证。

使用 Fiddler,我POST执行以下操作:

响应,根据需要:

从我的 MVC 控制器:

不会抛出异常。

在服务中手动创建 IValidator 的实例并引发异常确实会冒泡异常。


为什么验证不会针对来自 的请求触发AppHostBase.ResolveService

0 投票
1 回答
313 浏览

razor - 为什么我的 ServiceStack.Razor 页面在我重建应用程序之前不会刷新?

我在 ServiceStack (3.9) 中托管了一个 API 项目,并且添加了一个 /docs 文件夹,其中包含两个 Razor 文件,_layout.cshtml并且default.cshtml

我没有配置缓存;我的 AppHost 类如下所示:

我的 Razor 页面运行良好 - 转到 localhost/api/docs 会显示默认页面并使用提供的布局 - 但如果我对 Razor 代码进行更改,我需要重新编译应用程序,然后才能在浏览器中看到它。

我的理解是 ServiceStack 视图像 ASP.NET MVC 视图一样工作——它们在请求时被解释,并且对视图代码的任何更改都会立即显示出来,如果你想缓存你渲染的视图,你需要明确地配置它. 我是否错过了配置设置,或者我需要做些什么来重新编译 ServiceStack 页面而不需要重建项目?

0 投票
1 回答
518 浏览

c# - Servicestack - 请求 DTO 的多个 IReturn

是否可以有多个IReturn<>请求 DTO?

例如以下路线:

根据请求方法,我想要另一个IReturn. Post-Put-Delete Request 仅在请求成功时才应返回确认:

但在 GET 请求中,我想要一个:

如果有办法在 Swagger Api/元数据页面中反映这一点,那也很好。目前只显示第一个IReturn

这是可能的还是为每个不同的人创建一条路线会更好IReturn