Проблемы с доступом к Сервису WCF без www - PullRequest
1 голос
/ 09 октября 2010

У меня есть служба WCF, работающая на www.domain.com/Service.svc, к которой я подключаюсь с помощью jQuery с моего сайта asp.net. Все работает отлично, если пользователь заходит на мой сайт с www.domain.com. Но если пользователь использует только domain.com, я получаю сообщение об ошибке:

There was no channel actively listening at 'http://domain.com/Service.svc/get?date=2010-10-09'. 
This is often caused by an incorrect address URI. Ensure that the address to which          
the message is sent matches an address on which a service is listening.

В моем файле web.config я использую тег serviceHostingEnvironment для запуска службы на моем веб-хосте (иначе это не работает). Может быть это то, что вызывает ошибку?

Вот мой system.serviceModel в web.config (у меня были некоторые проблемы при настройке веб-службы, поэтому мой web.config может быть немного грязным:

<system.serviceModel>
    <behaviors>
        <endpointBehaviors>
            <behavior name="ServiceAspNetAjaxBehavior">
                <enableWebScript  />
            </behavior>
        </endpointBehaviors>
        <serviceBehaviors>
            <behavior name="ServiceBehavior">
                <serviceDebug includeExceptionDetailInFaults="true" />
            </behavior>
        </serviceBehaviors>
    </behaviors>


    <serviceHostingEnvironment aspNetCompatibilityEnabled="true">
        <baseAddressPrefixFilters>
            <add prefix="http://www.domain.com"/>
        </baseAddressPrefixFilters>
    </serviceHostingEnvironment>

    <services>
        <service behaviorConfiguration="ServiceBehavior" name="Service">
            <endpoint address="" behaviorConfiguration="ServiceAspNetAjaxBehavior"
     binding="webHttpBinding" bindingConfiguration="ServiceBinding" contract="Service" />
        </service>
    </services>

    <bindings>
        <webHttpBinding>
            <binding name="ServiceBinding" maxBufferPoolSize="1000000" maxReceivedMessageSize="1000000">
                <readerQuotas maxDepth="1000000" maxStringContentLength="1000000"
      maxArrayLength="1000000" maxBytesPerRead="1000000" maxNameTableCharCount="1000000" />
            </binding>
        </webHttpBinding>
    </bindings>
</system.serviceModel>

Как я могу предоставить своим пользователям доступ к моему веб-сервису даже при использовании только domain.com?

?

1 Ответ

0 голосов
/ 09 октября 2010

Имеет ли ваш сервер возможности IIS 7.5?Взгляните на модуль URL Rewrite 2.0 и его каноническое правило перезаписи имени хоста.Должно быть именно то, что вы ищете

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...