Удалить расширение .svc в net.tcp

Я пытаюсь разместить свою веб-службу WCF 4 в WAS и IIS для http и net.tcp. Можно ли убрать расширение .svc для привязки net.tcp??

Если я сделаю следующее, я получаю сообщение об ошибке

На net.tcp://myserver.com/service/TestService не было ни одной конечной точки, которая могла бы принять сообщение. Это часто вызвано неверным адресом или действием SOAP. Дополнительные сведения см. в разделе InnerException, если он присутствует.

 <system.serviceModel>
      <serviceHostingEnvironment multipleSiteBindingsEnabled="true">
          <serviceActivations>
              <add relativeAddress="TestService.svc" service="Web.TestService"/>
          </serviceActivations>   
      </serviceHostingEnvironment>     




      <services>
          <service name="Web.TestService" behaviorConfiguration="WebService">
              <host>
                  <baseAddresses>
                      <add baseAddress="http://myserver.com/service/" />

                  </baseAddresses>

              </host>
              <endpoint address=""  contract="Web.ITestService" binding="basicHttpBinding"></endpoint>
              <endpoint address="net.tcp://myserver.com:808/service/TestService" contract="Web.ITestService" binding="netTcpBinding"></endpoint>
              <endpoint address="net.tcp://myserver.com:808/service/TestService/mex"  binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange"></endpoint>
          </service>
      </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="WebService">                       
          <serviceMetadata httpGetEnabled="true"/>            
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>   
  </system.serviceModel>

person Community    schedule 25.08.2012    source источник


Ответы (1)


Эти строки Nazaf вызывают ошибку, потому что ваш адрес неверен, у вас два протокола.

baseAddress="http://myserver.com/service/"
+
<endpoint address="net.tcp://myserver.com:808/service/TestService" contract="Web.ITestService" binding="netTcpBinding"></endpoint>

У вас есть два протокола в вашем адресе, удалите базовый адрес и установите разные значения

Вы можете прочитать эту статью об адресации, это очень интересно: http://msdn.microsoft.com/en-us/magazine/cc163412.aspx

person Aghilas Yakoub    schedule 25.08.2012
comment
WCF достаточно умен, чтобы определить правильный базовый адрес. В любом случае, я попытался удалить базовый адрес и установить адрес конечной точки, но он тоже не работает. - person ; 27.08.2012