سؤال

وأنا أعمل على كتابة مواصفات BDD لمجموعة واسعة من البنية التحتية للخدمات WCF وأنا أكتب. وقد لاحظت أن كل مواصفات I الكتابة تنطوي على الدعوة إلى ServiceHost.Open ()، هذا الخط يأخذ جيدة 2-6 ثواني لتنفيذ (الوقت ازدياد مستمر كما أود أن أضيف المزيد والمزيد من المواصفات). لقد لاحظت أنه عندما يتم استدعاء هذا الأسلوب، يتم طرح Win32Exception:

Win32Exception occurred
Message: The specified domain either does not exist or could not be contacted.
Stack Trace: at System.ServiceModel.UpnEndpointIdentity.GetUpnFromDownlevelName(String downlevelName)
NativeErrorCode: 1355
ErrorCode: -2147467259

والتكوين ServiceModel كما يلي:

<system.serviceModel>
  <services>
    <service name="TestServices.Calculator" behaviorConfiguration="default">
      <endpoint
        name="calculator"
        address=""
        binding="wsHttpBinding"
        contract="TestServiceContracts.ICalculator" />
      <endpoint
        address="mex"
        binding="mexHttpBinding"
        contract="IMetadataExchange" />
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost/calculator" />
        </baseAddresses>
      </host>
    </service>
  </services>

  <behaviors>
    <serviceBehaviors>
      <behavior name="default" >
        <serviceMetadata httpGetEnabled="true" />
      </behavior>
    </serviceBehaviors>
  </behaviors>
</system.serviceModel>

ملحوظة: لقد تكوينه HTTP.SYS وأضاف HTTP: // +: 80 / آلة حاسبة / كما استثناء HTTP مساحة، لذلك ليس جزءا من المشكلة.

وهذا الخطأ هو أشد على نظام ويندوز 7 نهاية المطاف. على نظام ويندوز فيستا في نهاية المطاف، فإنه لا يبدو أن القضية أكبر قدر من ضربة الأداء، ولكن ServiceHost.Open () هو الجزء الأكبر من الوقت الذي يقضيه في التنفيذ. أنا لا أفهم السبب في ذلك هو قضية على الإطلاق عند ال URL هي المضيف المحلي ... أتوقع واجهة الاسترجاع لتكون أسرع من كل شيء.

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

المحلول

والمشكلة ليست مع المضيف المحلي مقابل اسم نظام أسماء النطاقات ... انها تتعلق WCF داعيا في TranslateName () المعهد لتحويل هوية UPN الخدمة من اسم SAM-متوافق (أي DOMAIN \ المستخدم) إلى الاسم المقبول، ويشكو أنه لا يمكن الاتصال تحديد المجال في اسم SAM-متوافق قدمت كمدخل.

ولست متأكدا ما يمكن أن يسبب هذا، ولكنها قد تكون أنك تحدد بطريقة أو بأخرى مجال الخطأ في هوية UPN الخاص بك، أو أن هناك شيء خاطئ مع تسجيل نطاق الجهاز الخاص بك، أو جدار الحماية هو الحصول في الطريق.

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