4

ServiceStack の Web サイトによると、Mono を使用して Linux で ServiceStack を簡単に起動して実行できるはずです。システムにnginx、mono 3.0、およびfastcgiをインストールしました(Ubuntu 12.10)。このチュートリアルを使用して、Nginx と fastcgi を実行しました。MonoDevelop でプロジェクトを右クリックし、[ツール] -> [Web にデプロイ] を選択しました。これにより、デプロイするファイルが生成されます。次に、dll を Ubuntu の /var/www/project_folder にコピーしました。次にNginxとfastcgiを起動しました。私の web.config ファイルは次のようになります。

<?xml version="1.0"?>
<configuration>
   <system.web>
      <customErrors mode="Off"/>
      <httpHandlers>
         <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
      </httpHandlers>
      <compilation>
         <assemblies>
            <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
         </assemblies>
      </compilation>
   </system.web>
   <!-- Required for IIS 7.0 (and above?) -->
   <system.webServer>
      <validation validateIntegratedModeConfiguration="false" />
         <handlers>
            <add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />
         </handlers>
    </system.webServer>
</configuration>

サーバーに XSP を追加していません。サーバー (リモート アドレス) の Web ページにアクセスすると、ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory が見つからないというエラーが表示されます。web.config ファイルは、この ServiceStackHttpHandlerFactory を含む dll と同じフォルダーにあります。

これを引き起こしているアイデアはありますか?

4

1 に答える 1

2

まず、まだ読んでいない場合は、Mono/LinuxでServiceStackを実行するためのwikiドキュメントを確認する必要があります。

どのServiceStack.dllをコピーし、どこから入手しましたか?これServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactoryはASP.NETエントリポイントであり、コアServiceStack.dllバイナリで利用できます。

エントリポイントServiceStack.dllが見つからない場合は、Mono FastCGI /ASP.NETホストがServiceStack.dllを見つけるのに問題があるはずです。ASP.NETアプリケーションでは、現在の/bin場所に関連するフォルダーにあるはずWeb.Configです。 。すべてのファイルが適切な場所にある場合は、ファイルのアクセス許可に問題がある可能性があります。

于 2013-01-29T18:24:46.067 に答える