2009-06-14 4 views
1

В этом онлайн-ресурсе так много, но никто, кажется, не может ответить на этот вопрос ... Надеюсь, кто-то здесь будет!Веб-хостинг Silverlight WCF на домене и сайте www.domain.com

Итак, у меня есть веб-сервис WCF, размещенный на godaddy.com. Все прекрасно работает, когда я пытаюсь к нему доступ с помощью:

Http: //**www.**domain.com/DataService.svc

проблема, когда я удалить WWW IE

http://domain.com/DataService.svc

Вот мой web.config ServiceModel раздел:

<system.serviceModel> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="DataServiceBehavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<services> 
    <service behaviorConfiguration="DataServiceBehavior" 
     name="DataService"> 

    <endpoint address="" binding="basicHttpBinding" contract="IDataService"/> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 
</services> 

Вот мой ServiceReferences.ClientConfig

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="BasicHttpBinding_IDataService" maxBufferSize="2147483647" 
       maxReceivedMessageSize="2147483647"> 
       <security mode="None" /> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="http://www.domain.ca/DataService.svc" binding="basicHttpBinding" 
      bindingConfiguration="BasicHttpBinding_IDataService" contract="Web.IDataService" 
      name="BasicHttpBinding_IDataService" /> 
    </client> 
</system.serviceModel> 

Моя служба использует CustomServiceFactory

public class CustomServiceHostFactory : ServiceHostFactory 
{ 
    /// <summary> 
    /// A custom method to eliminate multiple base addresses from the IIS host creation process 
    /// </summary> 
    /// <param name="serviceType">The service type to be created</param> 
    /// <param name="baseAddresses">A list of the base addresses</param> 
    /// <returns>A service host</returns> 
    protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses) 
    { 
     if (baseAddresses.Length > 1) 
     { 
      ServiceHost customServiceHost = 
       new ServiceHost(serviceType, baseAddresses[1]); 
      return customServiceHost; 
     } 

     return new ServiceHost(serviceType, baseAddresses[0]); 
    } 
} 

В основном то, что я хотел бы мой WCF вебсервис быть достижимы входит ли пользователь domain.com или www.domain .com в его (или ее) браузер.

Любая помощь будет принята с благодарностью!

пс. Запуск IIS 7 с ASP 3.5

Thnaks! Simon

ответ

1

Вы сталкиваетесь с проблемой перекрестного домена. См. here, чтобы узнать, почему это происходит. Как оказалось, «www» и no-www - разные области, хотя они и не похожи. Вам нужно будет добавить файл перекрестного домена. См. Tim's blog для хорошей информации

+0

Это странный bc, у меня был клиентaccesspolicy.xml, но его единственный, когда я добавил crossdomain.xml, это, в конце концов, сработало. Это может быть из-за godaddy? Ну, по крайней мере, сейчас он работает. Благодаря! –

+0

Интересно. На самом деле легко скрыть файлы с перекрестными доменами. Возможно, этот инструмент поможет: http://www.franksworld.com/Utilities/CrossDomainPolicyChecker/Default.aspx gl! –

 Смежные вопросы

  • Нет связанных вопросов^_^