【发布时间】: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