0

IIS で「通常の」basichttp サービスをホストし、ローカル ネットワーク経由でアクセスできます。問題は、二重サービスを実行して IIS でホストしようとしていることです。

私の Web.Config:

<system.serviceModel>
<services>
  <service behaviorConfiguration="BaseBehavior" name="RegistrationService">
    <endpoint binding="wsDualHttpBinding" bindingConfiguration="wsDualHttpBind" name="RegistrationService" contract="Service" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="BaseBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<bindings>
  <wsDualHttpBinding>
    <binding name="wsDualHttpBind" sendTimeout="00:01:00">
      <security mode="None">
        <message clientCredentialType="None" />
      </security>
    </binding>
  </wsDualHttpBinding>
</bindings>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>

「http://localhost /Service/Service.svc」を開いたときに表示されるエラー メッセージ:

「コントラクトには「二重」バインディングが必要です」「BasicHttpBinding はこれをサポートしておらず、サポートが正しく構成されていませんでした。」

私はグーグルでweb.configのさまざまな設定を見つけましたが、どれも機能しませんでした。私の推測では、web.config が間違っていると思います。

4

2 に答える 2

0

fraさん、素早い回答ありがとうございます。私の設定は完全に間違っていました^^

この記事を読んだ後:

http://www.dotnetconsult.co.uk/weblog2/PermaLink,guid,b891610a-6b78-4b54-b9a6-4ec81c82b7c0.aspx

wsDualHttpBinding から net.tcp に変更しました。

私の新しい web.config は次のようになります。

<system.serviceModel>

<behaviors>
  <serviceBehaviors>
    <behavior name="MyBehaviour">
      <serviceMetadata />
    </behavior>
  </serviceBehaviors>
</behaviors>
<services>
<service name="Service" behaviorConfiguration="MyBehaviour">
  <endpoint address=""
            binding="netTcpBinding"
            bindingConfiguration="InsecureTcp"
            contract="IService" />
  <endpoint address="mextcp" binding="mexTcpBinding" contract="IMetadataExchange"/>
</service>
</services>
<bindings>
  <netTcpBinding>
    <binding name="InsecureTcp" portSharingEnabled="true">
      <security mode="None" />
    </binding>
  </netTcpBinding>
</bindings>

IIS では、net.tcp を Web サイトに追加しました。(http,net.tpc) また、ファイアウォールはポートを許可する必要があります。

今、それは働いています。

于 2012-08-22T16:48:01.030 に答える