私はRESTfulなサービスとしてIIS上で実行したい非常に基本的なWCFサービスを持っています。ここにサービス契約があります。web.configで設定が追加されたときにWebHttpBindingが動作しないWCFサービス
[ServiceContract]
interface IRestCameraWs
{
[OperationContract]
[WebGet(UriTemplate = "/cameras/{username}",ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped)]
CameraInfo[] GetUserCameras(string username);
[OperationContract]
[WebGet(UriTemplate = "/liveimage/{cameraId}",ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped)]
byte[] GetLiveImage(int cameraId);
//void GetLatestImage(int cameraId, out DateTime timestamp, out byte[] image);
[OperationContract]
[WebGet(UriTemplate = "/latestimage/{cameraId}", ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped)]
string GetLatestImageUrl(int cameraId);
}
StopMotion.Business.WCFService.RestCameraWs
と呼ばれるこの契約を実装するクラスがあります。次に、Webプロジェクトに.svc
というファイルをマークアップとともに追加しました。
<%@ ServiceHost Service="StopMotion.Business.WCFService.RestCameraWsBase"%>
私は、このサービスのURLに移動し、それは私にサービスのホームページおよびWSDL定義へのリンクを示します。しかし、私がこのサービスを設定するために私のweb.config
ファイルに設定を追加すると、webHttpBinding
私はIIS Expressから次のエラーページを取得します。
まず
は私が構成で何か間違ったことをやっていると思いました。その後、私は設定を削除し、ちょうど<%@ ServiceHost Factory="System.ServiceModel.Activation.WebServiceHostFactory" Service="StopMotion.Business.WCFService.RestCameraWsBase"%>
WebServiceHostFactory
のようなSVCファイルに工場を変更し、デフォルトでwebHttpBinding
を使用するように言われ、私たちはそれからより多くのものを必要とする場合を除き設定でこれを追加する必要はありません。しかし、工場を変更すると、IIS Expressでも同じエラーページが表示されました。
ここで何が起こっているのですか?
ありがとうございます。私はまだそれまでには達していない。しかし、遅かれ早かれ、私はこれを必要としているはずです。 +1と助けてくれてありがとう。 –