私は最初のWCFサービスを作ろうとしています。 私は問題があります - 私は構造体、クラス、およびいくつかのメソッドを書いています。 私のサービス契約は、次のようになります。私は、Visual Studioでテストクライアントを使用して、それを実行するとwcfサービスが動作していません - サービスを追加できませんでした
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace WebshopReports
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IReports" in both code and config file together.
[ServiceContract]
public interface IReports
{
[OperationContract]
List<Category> getReportCategories(string dir);
[OperationContract]
List<CReport> getReportList(Category category);
}
}
は、私は次を得る:
は、サービスの追加に失敗しました。サービスメタデータにアクセスできない可能性があります。 サービスを実行し、メタデータが公開されていることを確認してください。
私はweb.configファイルと関係があると確信しています。それは以下の通りです。私はweb.configファイルを設定する方法がわからないよと誰かが私を助けてくださいすることができます
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
を
奇妙なことは、私はクラスから構造体へのCReportを変更した場合、それが動作しますです。
おそらく私は私の解決策を間違った方法で探しています。パラメータを受け取り、クリスタルレポートを実行してデータを返すサービスを作成したいと考えています。これについてはWSDLサービスが最善の方法でしょうか? – Lock
これについてはさまざまな方法があります。ウェブサービスが適切なソリューションであるかどうかを判断するためには、制約を評価する必要があります。私はあなたに決定的な答えを与えるためのあなたの必要条件について十分に分かっていません - それはあなたの元の質問の範囲外です。 –