【问题标题】:Is it possible to make a self-hosted project of a ServiceStack+MVC3 like SocialBootstrapApi?是否可以制作像 SocialBootstrapApi 这样的 ServiceStack+MVC3 的自托管项目?
【发布时间】:2012-12-14 23:34:39
【问题描述】:

我正在学习 ServiceStack 如何在自托管项目的帮助下工作。 自托管项目更容易调试和理解,因为 IIS 内部不会发生任何奇迹。

我按照这些步骤,阅读 http://www.servicestack.net/mythz_blog/?p=785 并向后应用它们。

它适用于 Docs,但不适用于 SocialBootstrapApi。 Global.asax 中的 Application_Start() 中的代码是我认为的问题

ServiceStack 文档的步骤

  • 下载 ServiceStack Docs 示例项目

  • 创建一个新的控制台项目(.Net 3.5,因为 Docs 仍然是 3.5)

  • 从旧 Web 项目中复制除 web.config 之外的所有文件。 (我第一次使用拖放,但只是移动了文件,并没有更新 .csproj 文件,所以我不得不使用编辑器复制一些 ItemGroup 部分。)

  • 将AppHost移动到单独的类文件中,改为继承自AppHostHttpListenerBase

  • 从 RazorRockstars 项目复制 Programs.cs 文件

  • 更改baseUrl:var baseUrl = "http://localhost:2001/"; // ConfigUtils.GetAppSetting("WebHostUrl");

  • 从 RazorRockstars 项目复制 app.config 文件(但这不是必需的)

  • 将控制台项目的输出路径更改为 .\,否则 PageManager.Init 路径错误,并且找不到大多数文件

  • 完成此操作后,下载完整的 ServiceStack 源代码并在 Debug 模式下重新编译,将 Docs 项目中的所有 ServiceStack 引用替换为新编译的内容。现在,您可以轻松单步执行所有 ServiceStack 代码、设置断点等,并了解发生了什么以及何时发生。控制台项目还有其他一些优势,它们启动速度更快,Edit-and-Continue 的工作频率更高。

对于 SocialBootstrapApi,我做了同样的事情,除了/和

  • 将 web.config 重命名为 app.config

  • 已注释掉 // [程序集:WebActivator.PreApplicationStartMethod(typeof(SocialBootstrapApi.AppHost), "Start")]

  • 现在,项目的正常 ServiceStack 部分可以正常工作,尽管 url 没有初始 /api/

  • 尝试将 Application_Start() 从 Global.asax 移动到 AppHost.Configure ==>> 拒绝启动

【问题讨论】:

    标签: servicestack


    【解决方案1】:

    ASP.NET MVC 不能托管在自托管的 HttpListener 中(因为它与 ASP.NET 耦合),但 ServiceStack 确实支持在自托管的 HttpListener 应用中托管它的 Razor 和 Markdown 视图引擎。

    Razor Rockstars 网站是 ServiceStack 的 Razor 和 Markdown 视图引擎支持的展示网站。 razor-console.servicestack.net 是托管在 HttpListener 自主机中的同一网站。 RazorRockstars is on GitHub 的源代码和 RazorRockstars.SelfHost 示例包含 razor-console 的源代码。对于自托管网站,您必须记住的一件事是 VS.NET 中的 Razor 视图页面 Build Action 需要设置为 Copy if Newer 以便视图复制到/bin 目录中,以便ServiceStack 在运行时找到它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多