1

ServiceStack.net の Hello Web サービス チュートリアルに従っています。サービスにアクセスしようとすると、次のメッセージが表示されます。

httpHandler タイプ `ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack' のロードに失敗しました

プロジェクトの作業ディレクトリでデフォルト値 (つまり、ポート 8080) で開始した xsp を使用しています。チュートリアルに記載されているように、このディレクトリの 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 を作成しただけでなく、プロジェクトで作成および参照したすべての dll を含む bin ディレクトリも作成したことに気付きました。

xsp ルート ディレクトリを web.config および ./bin を含むパスに設定すると、http ハンドラが検出され、最終的に Web サービスにアクセスできるようになり、
http://localhost:8080/ServiceStack/metadata

このシナリオでは、dll を /bin に置く必要はありませんでしたが、プロジェクトのビンに入れました。

HelloAppHost().Init() の呼び出しも見落としていました。

少し学習曲線が長いですが、ServiceStack を使用することを楽しみにしています。

@mythz と @Mr.Young に感謝します

于 2013-02-12T12:02:06.457 に答える
1

設定が間違っている可能性があると思います。この構成と、既存の Web フレームワークで ServiceStack を使用するための構成を混同している可能性があります。他の Web フレームワークを使用せずにルート (/) パスで ServiceStack をホストするための基本構成は次のとおりです。

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

と IIS 固有のものを削除しservicestack*ます。path仮想パスの Mono ASP.NET 実装で非常にクールでないバグに遭遇する可能性があります。詳細はこちら: https://groups.google.com/d/msg/servicestack/kzfS88RldIU/LsJ2jV9M2LIJ

于 2013-02-11T23:52:40.543 に答える