asp.net - ServiceStack 和 SignalR 一起在同一个项目中

标签 asp.net servicestack signalr

这是一个有点微不足道的问题,但我在单个 Asp.Net 主机应用程序中使用 SignalR 和 ServiceStack。

意味着,这是一个简单的 Asp.Net 空白应用程序,ServiceStack 运行在 / 上,并且使用 Razor 显示默认页面。运行完美。

现在,我添加了 SignalR asp.net 主机。添加了启动类并创建了中心来监听和广播聊天消息。

我只在默认页面中编写了客户端代码。现在,一切进展顺利。意味着 API 和 SignalR 都在本地计算机上运行。

现在的问题是,这是正确的做事方式吗?意思是,是否有两个不同的进程正在访问 IIS。或者有什么方法可以将进程链接到单个进程。

或者甚至是 ServiceStack API 的一部分,我可以实现实时。

如果需要任何进一步的信息,请告诉我。

最佳答案

是的,这是可能的,但目前你无法在 Owin 上运行 ServiceStack(据我所知)

所以你需要在特定位置运行ServiceStack。

<location path="ssapi">

  <system.web>
    <httpHandlers>
      <add path="*" type="ServiceStack.HttpHandlerFactory, ServiceStack" verb="*"/>
    </httpHandlers>
  </system.web>

  <system.webServer>
    <handlers>
      <add path="*" name="ServiceStack.Factory" type="ServiceStack.HttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />
    </handlers>
  </system.webServer>

</location>

您可能还需要从该位置删除 owin/signalr 内容的处理程序。

或者,您可以在特定路径上设置 SignalR 并从该路径中删除 ServiceStack。

<location path="signalr">

  <system.web>
    <httpHandlers>
      <remove type="ServiceStack.HttpHandlerFactory, ServiceStack" />
    </httpHandlers>
  </system.web>

  <system.webServer>
    <handlers>
      <remove name="ServiceStack.Factory" />
    </handlers>
  </system.webServer>

</location>

关于asp.net - ServiceStack 和 SignalR 一起在同一个项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22483650/

相关文章:

asp.net - 显示 ASP.NET 页面,然后使用 Response.WriteFile 发送文件

c# - 如何为我的 ASP.NET TextBox 获取正确的 ClientID?

ServiceStack Razor - 如何将验证错误返回到表单?

javascript - 尝试连接跨域托管信号服务时,signalR 连接失败

asp.net - 哪个对于依赖项更好 : Web Service vs XML?

servicestack:将 www-authenticate header 添加到错误响应

c# - ServiceStack 请求体

signalr - SignalR connectionID 是否特定于集线器?

javascript - 添加新行后在 jQuery 中搜索表

asp.net - Bootstrap 梅辛 Telerik RadGrid