لماذا لا تستجيب خدمة WCF الخاصة بي في إعداد Baseaddress الخاص بي في Web.config؟

StackOverflow https://stackoverflow.com/questions/541762

سؤال

أحاول معرفة كيفية بناء خدمات مريحة مع WCF عن طريق إعادة إنشاء المشروع هذه المدونة post. بواسطة أنتوني ستيل. يستخدم XML التالي في تكوينه لإعداد نقطة النهاية للخدمة.

    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8080/greeter"/>
      </baseAddresses>
    </host>

ومع ذلك، عندما أحاول أن أفعل نفس الشيء في Web.Config موقع الويب الخاص بي ASP.NET 3.5، فأنا غير قادر على الانتقال إلى خدمتي. هنا هو XML أنا أستخدم:

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="GreeterBehavior">
        <serviceMetadata httpGetEnabled="true"/>
        <serviceDebug includeExceptionDetailInFaults="false"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <services>
    <service behaviorConfiguration="GreeterBehavior" name="Greeter">
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost:49268/TestREST/webapi/services/greeter"/>
        </baseAddresses>
      </host>
      <endpoint address="" binding="wsHttpBinding" contract="IGreeter">
        <identity>
          <dns value="localhost"/>
        </identity>
      </endpoint>
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    </service>
  </services>
</system.serviceModel>

وأود أن أتصور التكوين الخاص بي سيسمح لي بالانتقال إلى http: // localhost: 49268 / testrest / webapi / services / greeter وانظر خدمتي. كل ما أحصل عليه هو مورد غير موجود رسالة - هل أنا أفتقد شيئا؟

تحرير: جزء من مشكلتي كان ربط بلدي Wshttpbinding. يستخدمني استخدام Webhttpbinding لاستخدام الخدمة بشكل صحيح - باستثناء قسم تكوين Baseaddress لا يزال له تأثير.

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

المحلول

حديقتي هي أن نقطة نهاية الخدمة لا يتم إنشاؤها بنجاح.

في سمة "اسم" الخدمة، لا تشمل FQN (اسم مؤهل بالكامل) لنوع الخدمة. ثانيا، سمة "العقد" في نقطة النهاية، كما أنها ليست أيضا بما في ذلك FQN لنوع العقد.

من ناحية أخرى، قد يكون هذا مشكلة منفذ. من أجل التأكد، حاول تشغيل WcftestClient.exe المضمنة في توزيع Visual Studio 2008. إذا كنت تستطيع الاتصال http: // localhost: 49268 / testrest / webapi / services / greeter / mex, ، فأنت تعلم أنها ليست مشكلة منفذ.

من المفترض أن يمكنك الاتصال عبر MEX، ثم حاول ممارسة بعض الطرق، والتي من المفترض أن يتم تعيينها إلى http: // localhost: 49268 / testrest / webapi / services / greeter.

إذا كنت تعمل على الخادم، راجع بعض التفاصيل القيمة حول httpcfg.exe هنا:WCF ServiceHost BasichttpBinding 503 خطأ

إذا كنت بحاجة إلى مزيد من التفاصيل حول WCFtestClient، فابحث عنها هنا:هل من الممكن جعل العمل WCFTStClient لقنوات النقل المخصصة؟

فقط في حالة: انسخ العينة الحرفية وتحقق من أنه يعمل على النحو المحدد، بما في ذلك ملف التكوين، قبل إجراء أدنى انحراف منه.

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