CentOSでmod_monoを使用して、Apache2.2.15でホストされているbasicHttpBindingを使用するWCFサービスがあります。/etc/httpd/conf/httpd.confの最後に次のディレクティブを追加して、WCFサービスを有効にしました。
MonoServerPath default /usr/bin/mod-mono-server4
AddType application/x-asp-net .svc
Windowsのクライアントからサービスの操作を呼び出そうとすると:
BasicHttpBinding binding = new BasicHttpBinding();
IService1 service1 = ChannelFactory<IService1>.CreateChannel(binding, new EndpointAddress(new Uri(`"http://ipaddress/svctest/Service1.svc"`)));
string test= service1.GetData(1);
次の例外がスローされます。
ProtocolExceptionが処理されませんでした:応答メッセージのコンテンツタイプapplication / x-asp-netが、バインディングのコンテンツタイプ(text / xml; charset = utf-8)と一致しません。カスタムエンコーダーを使用する場合は、IsContentTypeSupportedメソッドが正しく実装されていることを確認してください。応答の最初の109バイトは次のとおりです。'<%@ ServiceHost Language = "C#" Debug = "true" Service = "svcfiletest.Service1" CodeBehind = "Service1.svc.cs"%>
ブラウザからサービスにアクセスすると、サービスの説明が表示される代わりにファイルがダウンロードされます。
svcutil
http://ipaddress/svcutil/Service1.svc?wsdlを使用すると、次のメッセージが表示されます。URLのドキュメント
http://ipaddress/svctest/Service1.svc
が既知のドキュメントタイプとして認識されませんでした。既知の各タイプからのエラーメッセージは、問題の修正に役立つ場合があります。-「XMLスキーマ」からのレポートは「名前は「%」文字で開始できません。16値は0x25です。行1、位置2。-「WSDLドキュメント」からのレポートは「XMLドキュメント(1,2)にエラーがあります。」です。-名前を「%」文字で始めることはできません。16進値は0x25です。行1、位置2。
Service1.svcからテキストを取得しているようです。
<%@ ServiceHost Language="C#" Debug="true" Service="svcfiletest.Service1" CodeBehind="Service1.svc.cs" %>
何か助けはありますか?
ありがとう