4

それぞれ 1 つの .aspx、.asmx、および .svc ファイルで単純なアプリケーションをホストしようとしています。ホスティングを実現するために、以下のガイドに従いました (私は Linux の世界に非常に慣れていないため、理解するのに時間がかかりました!):

http://www.mono-project.com/Mod_mono#Manual_Mod_Mono_Configuration

すべてのホスティングの後、aspx および asmx ファイルにアクセスできます。しかし、svc ファイルにアクセスしようとすると、次のエラーが表示されます。

ServiceHost には、構成、動作、または AddServiceEndpoint メソッドの呼び出しによって定義された、少なくとも 1 つのアプリケーション エンドポイント (メタデータ交換エンドポイントは含まれません) が必要です。

また

HttpListenerContext は、登録されたチャネルのいずれとも一致しません

以下のように web.config で定義された非常に単純なサービス エンドポイントがあります。

  <system.serviceModel>
<services>
  <service name="TestWCFService">
    <endpoint address="http://localhost/MonoTest/TestWCFService.svc" binding="basicHttpBinding"
              contract="MonoTest.ITestWCFService"></endpoint>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

私が間違っていることを教えてください。

注: MS VS 2010 を使用してこのプロジェクトを作成し、公開しました。公開されたディレクトリが Apache/Linux 環境にコピーされます。WCF は複合型を使用しません。Mono バージョン 2.8.2 を使用しています

UPDATE 更新: 2.10.2 Mono を使用してみました。このエラーはなくなり、新しいエラーに直面しています:

XmlSchema error: Named item http://tempuri.org/:DoWork was already contained in the schema object table. Consider setting MONO_STRICT_MS_COMPLIANT to 'yes' to mimic MS implementation. Related schema item SourceUri: , Line 0, Position 0.
4

1 に答える 1

5

これに関する数週間の研究開発の後、私はこれを理解しました。何らかの理由で、サービス WSDL を機能させることができません (つまり、ブラウザーから .svc にアクセスできません)。ただし、Channel Factory を使用してサービスにアクセスしようとすると、サービスは正常に動作します。

したがって、Channel Factory (Silverlight アプリ用) にすべてを実装しましたが、現在はすべて正常に動作しているようです。WSDL を機能させる方法はまだわかりませんが、現時点ではそれほど重要ではありません。

于 2011-09-08T05:55:59.893 に答える