IISで「SSLを要求する」オプションを設定すると、クライアント証明書を使用して認証を実行していることを意味します。クライアント証明書認証がない場合は、そのオプションを無視または無効にするだけです。
あなたのサービスがHTTPS上でのみ提供されるのを避けるには、あなたのウェブサイトの "バインディング"オプションからHTTPバインディングを削除してください。そうでなければ、バインディングをセキュリティメカニズムとしてトランスポートを使用するように公開し、HTTPS上でのみサービスされるWCFサービスを処理する必要があります。
更新:
私がHttpsでIIS上でホストされているRESTfulなサービスをどのように持っているかを見つけてください:
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class RestService
{
//TODO: Implement the collection resource that will contain the SampleItem instances
private static List sampleCollection = new List();
[WebGet(UriTemplate = "/get-Collection")]
public List GetCollection()
{
//TODO: Replace the current implementation to return a collection of SampleItem instances
if (sampleCollection.Count == 0)
{
sampleCollection = new List();
sampleCollection.Add(new SampleItem() { Id = 1, StringValue = "Hello 1" });
sampleCollection.Add(new SampleItem() { Id = 2, StringValue = "Hello 2" });
sampleCollection.Add(new SampleItem() { Id = 3, StringValue = "Hello 3" });
sampleCollection.Add(new SampleItem() { Id = 4, StringValue = "Hello 4" });
sampleCollection.Add(new SampleItem() { Id = 5, StringValue = "Hello 5" });
}
return sampleCollection;
}
}
私のGlobal.asax:
public class Global : HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes();
}
private void RegisterRoutes()
{
//Edit the base address of Service1 by replacing the "Service1" string below
RouteTable.Routes.Add(new ServiceRoute("", new WebServiceHostFactory(), typeof(RestService)));
}
}
私のweb.configファイル:
<?xml version="1.0" encoding="UTF-8"?>
<!--
Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
via the attributes on the element below
-->
今私のIISは指定されたHttpsバインディングを持っています:

今私の仮想ディレクトリはXmlRestServiceという名前で設定されているので、リソースを参照すると以下の出力が得られます:
