我正在学习ServiceStack如何在自托管项目的帮助下工作。 自托管项目更容易调试和理解,因为IIS内部没有任何魔力。
我按照这些步骤阅读http://www.servicestack.net/mythz_blog/?p=785并向后应用它们。
它适用于Docs,但不适用于SocialBootstrapApi。 Global.asax的Application_Start()中的代码是我认为的问题
下载ServiceStack Docs示例项目
创建一个新的控制台项目(.Net 3.5,因为Docs仍为3.5)
从web.config以外的旧Web项目中复制所有文件。 (我首先使用拖放操作,但是只移动了文件,它没有更新.csproj文件,因此我不得不使用编辑器复制一些ItemGroup部分。)
将AppHost移动到单独的类文件中,更改为从AppHostHttpListenerBase继承
从RazorRockstars项目中复制Programs.cs文件
更改baseUrl:var baseUrl =“http:// localhost:2001 /”; // ConfigUtils.GetAppSetting(“WebHostUrl”);
从RazorRockstars项目复制app.config文件(但不需要这样做)
将控制台项目的输出路径更改为。\,否则PageManager.Init路径错误,找不到大多数文件
完成此操作后,下载完整的ServiceStack源代码并在调试模式下重新编译,用新编译的内容替换Docs项目中的所有ServiceStack引用。现在,您可以轻松地浏览所有ServiceStack代码,设置断点等,并了解正在发生的事情以及何时发生。控制台项目还有一些其他优点,它们启动速度更快,编辑和继续工作更频繁。
将web.config重命名为app.config
评论// [assembly:WebActivator.PreApplicationStartMethod(typeof(SocialBootstrapApi.AppHost),“开始”)]
现在,项目的正常ServiceStack部分正常工作,尽管url没有初始/ api /
尝试将Application_Start()从Global.asax移至AppHost.Configure ==>>拒绝开始
答案 0 :(得分:2)
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视图页面构建操作需要设置为复制更新以便视图是复制到/bin
目录中,以便ServiceStack可以在运行时找到它们。