سؤال

هناك الكثير من الأشياء على هذا الإنترنت ولكن لا أحد يبدو قادرا على الإجابة على هذا ... نأمل أن يكون شخص ما هنا!

لذلك لدي خدمة WCF Web المستضافة في Godaddy.com. كل شيء يعمل بشكل رائع عندما أحاول الوصول إليه باستخدام:

http: //**www.**dom/dataservice.svc.

المشكلة هي عندما أزيل www IE

http://domain.com/dataservice.svc.

إليك قسم ServiceModel الخاص بي Web.config:

<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>

خدمتي تستخدم GuardServiceFactory

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! سيمون

هل كانت مفيدة؟

المحلول

أنت تعمل عبر مشكلة عبر المجال. يرى هنا للحصول على قائمة من الأسباب لماذا يحدث ذلك. نظرا لأن "شبكة الاتصالات العالمية" وعدم وجود شبكة الاتصالات العالمية هي مجالات مختلفة على الرغم من أنها لا تبدو مثلها. ستحتاج إلى إضافة ملف مجال متقاطع. يرى تيم بلوق للحصول على معلومات جيدة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top