2011-07-19 7 views
1

IIS(Express)上で動作するエンドポイントを取得しようとしています。 IIS ExpressでVSでプロジェクトをデバッグし、ブラウザでエンドポイントアドレスを開くと、通常の404エラーが表示されます。WCFエンドポイントがIIS上で動作しない(Express)

私のweb.configファイル:

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <system.serviceModel> 
     <behaviors> 
     <serviceBehaviors> 
      <behavior> 
      <serviceMetadata httpGetEnabled="true"/> 
      <serviceDebug httpHelpPageEnabled="false" includeExceptionDetailInFaults="true"/> 
      </behavior> 
     </serviceBehaviors> 
     </behaviors> 
     <services> 
     <service name="A.B.C"> 
      <host> 
      <baseAddresses> 
       <add baseAddress="http://localhost:15000"/> 
      </baseAddresses> 
      </host> 
      <endpoint address="Test" binding="basicHttpBinding" contract="A.B.IC" bindingConfiguration="A.B.C"> 

      </endpoint> 
     </service> 
     </services> 
     <bindings> 
     <basicHttpBinding> 
      <binding name="A.B.C" 
        maxBufferPoolSize="20971520" 
        maxBufferSize="2097152" 
        maxReceivedMessageSize="2097152"> 
      </binding> 
     </basicHttpBinding> 
     </bindings> 
    </system.serviceModel> 
</configuration> 

私はそのが正常に動作し、Webサイトのルートに、次の内容で.SVC-Dateiを配置する場合:

<%@ ServiceHost Service="A.B.C" CodeBehind="Services/C.svc.cs" %> 

答えて

1

IISホスティングを使用する場合は、独自のベースアドレスを指定しないでください。サービスのベースアドレスは、.svcファイルの場所によって指定されます。エンドポイントアドレスは.svcファイルとの相対的な値になります。

.svcファイルはIISによってWCF(ASP.NETなど)ではなく要求をマップするために使用されます。

今、あなたはserviceActivationsを使用して仮想.SVCファイルではなく、物理的なものを持つことができるか、にASpNetCompaibilityを使用する場合this記事はこれがホストしていたために真実ではありません

+0

ので追加 ' ' 、' '-sectionで、エンドポイントアドレスを*/Test *に変更すると、*/Test123.svc/Test *のエンドポイントが開かれますか? – Hubert

+0

はい、それはすべきです(ただし、アドレスの先頭に/が必要です)。あなたの設定を見ると、/test123.svc?wsdlからwsdlを取得できるはずです。 –

+0

うわー、そうです。 ''を ''セクションから削除した後。ありがとう! _/Test123.svc_の_maxBufferSize_を変更する可能性はありますか?私は/Test123.svc/Test-Endpointを追加するだけで、_bindingConfiguration_を追加することができます。 – Hubert

0

私はあなたが答えたと思いますあなた自身の質問。 HTTP経由でホスティングする場合、Webサーバーがサービスをインスタンス化できるように.svcファイルが必要です。 net.tcpやnet.msmqなどの他のバインディングには、この要件はありません。

+0

示してServiceRouteを使用して完全に.SVC一部を削除することができます - デフォルトでは、ホストしていたことは任意の結合セルフホスティングのための.SVCファイルを必要としないの –

関連する問題