Привет
Я написал WCF duplex service
.Этот сервис работает нормально в Visual studio, но когда я публикую этот сервис и помещу его в IIS, Service don't answer to any Client
.
Все клиенты правильно подключаются к этому сервису.Также они называют Service Well, и исключений не возникает.
Только с этими службами (службой IIS и размещенной службой VS) отличается только адрес.Например:
* Адрес службы IIS: http://localhost/SmsService/SmsService.svc или, лучше сказать, адрес виртуального пути.
* Адрес размещенной службы VS: http://localhost:1408/SmsSrevice.svc. абсолютно I changed Server address for client's.
Конфигурация службы / приложения:
VS Hosted Service
<system.serviceModel>
<services>
<service name="SmsService.Business.SmsService"
behaviorConfiguration="ServiceBehavior">
<endpoint address="http://localhost:1408/SmsService.svc"
binding="wsDualHttpBinding"
contract="SmsService.Business.ISmsService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
IIS Hosted Service
<system.serviceModel>
<services>
<service name="SmsService.Business.SmsService"
behaviorConfiguration="ServiceBehavior">
<endpoint address=""
binding="wsDualHttpBinding"
contract="SmsService.Business.ISmsService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
Client Config
<system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="WSDualHttpBinding_SMSService"
closeTimeout="00:10:00"
clientBaseAddress="http://MyMachinName:10300/SmsClientService"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
bypassProxyOnLocal="false"
transactionFlow="false"
hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288"
maxReceivedMessageSize="65536"
messageEncoding="Text"
textEncoding="utf-8" useDefaultWebProxy="true">
<readerQuotas maxDepth="32"
maxStringContentLength="8192"
maxArrayLength="16384"
maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" />
<security mode="Message">
<message clientCredentialType="Windows"
negotiateServiceCredential="true"
algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<client>
<endpoint address="http://SERVER1/SmsService/SmsService.svc"
binding="wsDualHttpBinding"
bindingConfiguration="WSDualHttpBinding_SMSService"
contract="ServiceReference.SMSService"
name="WSDualHttpBinding_SMSService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
Даже я записал журнал событий первым методом обслуживания, но это не работает!
Так в чем проблема?
Редактировать 1
Первое спасибо всем
Второе, я думаюЯ не объясняю свой вопрос четко.«Этот сервис прекрасно работает в Visual Studio», в VS я могу общаться с сервером через клиента (на том же решении в VS с сервисом).Клиент может вызывать службу, а служба может вызывать клиента, и все в порядке (любые вычисления, обратные вызовы, действия с базой данных и т. Д.)
Но когда я публикую эту службу, которая выполняет свою работу должным образом в VS, в IISэто не работает нормально (даже на моем собственном компьютере).Это означает Client can create service object and connect to that IIS Hosted Service
, но когда у клиента службы вызовов нет событий (расчет, обратный вызов, действия базы данных) и Service also don't call Client's
.
Я не понимаю, если на каком-либо этапе моего кода были ошибки, которые должны происходить во время выполнения в VS.Так что должно быть что-то, что я пропустил, как security config, client side config or something else