私は他のすべてのソリューションを調べましたが、どれも機能していません。IISを使用してWCFサービスをホストしています。以下は私のweb.config(WCFサービスを追加したときのデフォルト)です。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
</assemblies>
</compilation>
<customErrors mode="Off" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>
すべてが順調で、http://www.domain.com/path/service.svcとhttps://www.domain.com/path/service.svcを使用してブラウザーでwcfサービスにアクセスできます。 Windowsコンソールアプリケーションのhttps://www.domain.com/path/service.svcへのWeb参照であり、以下は私のapp.configにあります。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="defaultBasicHttpBinding">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://www.domain.com/path/service.svc" binding="basicHttpBinding" bindingConfiguration="defaultBasicHttpBinding" contract="DomainExt.IExt" name="BasicHttpBinding_IExt" />
</client>
</system.serviceModel>
</configuration>
次のコードは、私がサービスをテストするために使用しているものです。
public static String DoPing()
{
ExtClient client = new ExtClient("BasicHttpBinding_IExt", "https://www.domain.com/path/service.svc");
return client.DoPing();
}
これを実行すると、次の例外が発生します。
メッセージを受け入れることができるhttps://www.domain.com/path/service.svcでリッスンしているエンドポイントはありませんでした。これは多くの場合、誤ったアドレスまたはSOAPアクションが原因で発生します。詳細については、InnerException(存在する場合)を参照してください。
内部例外の状態:
「リモートサーバーがエラーを返しました:(404)見つかりません。」
このサービスはhttpでは正常に機能しますが、httpsでは失敗します。どうすればこれを修正できますか?ASP.NETではなくWindowsコンソールを使用してこのサービスにアクセスしていることに注意してください。ASP.NETはWCFサービスのみをホストしています。