Не удалось найти базовый адрес, соответствующий схеме net.tcp

Я переместил свой сервис передачи файлов из basicHttpBinding в netTcpBinding, так как я пытаюсь настроить канал дуплексного режима. Я также запустил свой сервис совместного использования портов net.tcp.

В настоящее время я нахожусь в dev и сам хостинг на xp box, пока мы не переместим приложение на сервер dev. так что пока у меня нет доступа к IIS.

После настройки моего сервиса как такового:

<service behaviorConfiguration="transferServiceBehavior" name="API.FileTransfer.FileTransferService">
        <endpoint name="MyFileTransferEP"
                  address  = ""
                  binding  = "netTcpBinding"
                  bindingConfiguration="MyFileTransferNetTcpEP"
                  behaviorConfiguration="NetTcpEPBehavior"
                  contract="API.FileTransfer.IFileTransferService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://localhost:8001/project/filetransfer.svc" />
          </baseAddresses>
        </host>
</service>

И моя привязка как таковая:

<netTcpBinding>
        <binding name="MyFileTransferNetTcpEP"
                 hostNameComparisonMode="StrongWildcard"
                 closeTimeout="00:01:00"
                 openTimeout="00:01:00" 
                 receiveTimeout="00:10:00" 
                 sendTimeout="00:01:00"
                 maxReceivedMessageSize="2147483647"
                 transferMode="Streamed"
                 portSharingEnabled="true">
          <security mode="None">
            <transport clientCredentialType="None" />
            <message clientCredentialType="None" />
          </security>
        </binding>
</netTcpBinding>

Я получаю следующую ошибку, когда я прав и браузер к файлу SVC:

Не удалось найти базовый адрес, соответствующий схеме net.tcp для конечной точки с привязкой NetTcpBinding. Схемы зарегистрированных базовых адресов: [http].

Чтение в Интернете предполагает, что для решения этой проблемы мне нужно было добавить привязку net.tcp к привязке приложения в IIS. Но что мне делать, если я сам хостинг и не имею доступа к IIS ?? Кстати, если вы читаете это и «делаете» IIS, выполните следующие действия: Щелкните правой кнопкой мыши виртуальный каталог / приложение в IIS -> Управление приложением -> Дополнительные параметры. А в разделе «Активные протоколы» добавьте net.tcp.

Есть идеи?

ОБНОВЛЕНИЕ: я думал, что это работало, но это все еще не работает. Вот что у меня сейчас: я все еще получаю сообщение об ошибке «Не удалось найти базовый адрес, соответствующий схеме net.tcp». Я изменил все свои базовые адреса, чтобы отразить ваше предложение. Вот что у меня сейчас:

<service behaviorConfiguration="transferServiceBehavior" name="API.FileTransfer.FileTransferService">
            <endpoint name="MyJSONFileTransferEP"
                      address="json"
                      binding="webHttpBinding"
                      bindingConfiguration="jsonWeb"
                      behaviorConfiguration="WebHttpEPBehavior"
                      contract="API.FileTransfer.IJSONFileTransferService" />
            <endpoint name="MyPOXFileTransferEP"
                      address="pox"
                      behaviorConfiguration="WebHttpEPBehavior"
                      binding="webHttpBinding"
                      bindingConfiguration="poxWeb"
                      contract="API.FileTransfer.IPOXFileTransferService" />
            <endpoint name="MySOAPFileTransferEP"
                      address="filetransfer"
                      binding="netTcpBinding"
                      bindingConfiguration="netTcpWeb"
                      behaviorConfiguration="NetTcpEPBehavior"
                      contract="API.FileTransfer.ISOAPFileTransferService" />
            <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
            <host>
              <baseAddresses>
                <add baseAddress="net.tcp://localhost:2544/filetransfer/" />
              </baseAddresses>
            </host>
          </service>

Я пробовал это с обоими "net.tcp: // localhost: 2544" & "net.tcp: // localhost: 8001". Нужно ли что-то добавить (разрешить) в настройках брандмауэра? Любые другие предложения?

Вот mexTcpBinding моего filetransferservice в моем файле App.config:

<endpoint address="net.tcp://localhost:2544/filetransfer/mex"
        binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange"
        name="filetransfermex">
        <identity>
          <certificateReference storeName="My" storeLocation="LocalMachine"
            x509FindType="FindBySubjectDistinguishedName" />
        </identity>
      </endpoint>

Я все еще не могу сослаться на мой FileTransferServiceClient в моем веб-приложении.

Еще раз спасибо.

Ответы на вопрос(5)

Ваш ответ на вопрос