1

我正在关注 ServiceStack.net 上的 Hello Web Service 教程。尝试访问服务时收到以下消息:

无法加载 httpHandler 类型“ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory,ServiceStack”

我正在使用 xsp,它是在我的项目工作目录中启动的,具有默认值(即:端口 8080)。我按照教程中的说明编辑了此目录中的 web.config。

服务如何找到 http 处理程序?在端口 8080 上使用 xsp 可以打开元数据页面吗?

与应用程序位于同一目录中的 web.config 包含:

<configuration>

    <!-- Required for MONO -->
  <system.web>
    <httpHandlers>
      <add path="servicestack*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*"/>
    </httpHandlers>
  </system.web>
  <!-- Required for IIS7 -->
  <system.webServer>
    <!-- ServiceStack: Required -->
    <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>

</configuration>
4

2 回答 2

2

如前所述,我正在使用 Mono 和 xsp。我现在意识到,在我的工作目录中,MonoDevelop 不仅创建了 web.config,而且还创建了一个 bin 目录,其中包含我在项目中创建和引用的所有 dll。

将 xsp 根目录设置为包含 web.config 和 ./bin 的路径可以找到 http 处理程序并允许我最终访问我的 Web 服务和
http://localhost:8080/ServiceStack/metadata

在这种情况下,我不需要我的 dll 在 /bin 中,而是在项目的 bin 中

我也忽略了对 HelloAppHost().Init() 的调用

有点学习曲线......但我期待使用 ServiceStack。

谢谢@mythz 和@Mr.Young

于 2013-02-12T12:02:06.457 回答
1

我认为您的配置可能不正确。您可能将配置与将 ServiceStack 与现有 Web 框架一起使用的配置混淆了。将 ServiceStack 托管在根 (/) 路径而不使用任何其他 Web 框架的基本配置是

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

servicestack*path和 IIS 特定的东西中删除。您可能会在虚拟路径的 Mono ASP.NET 实现中遇到非常不酷的错误,详细信息如下:https ://groups.google.com/d/msg/servicestack/kzfS88RldIU/LsJ2jV9M2LIJ

于 2013-02-11T23:52:40.543 回答