سؤال

لقد أنشأت عملية خدمة أساسية للغاية تحتاج إلى كتابة محتوى إلى قاعدة البيانات الخاصة بي. هذه الخدمة تبدو كما يلي:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[ServiceBehavior(IncludeExceptionDetailInFaults = false)]
public class myService : ImyService
{
  public MyServiceResult MyMethod(string p1, string p2)
  {
    try
    {
      // Do stuff
      MyResponseObject r = new MyResponseObject();
      r.Property1 = DateTime.Now;
      r.Property2 = "Some other data";
      return r;
    }
    catch (Exception ex)
    {
      return null;
    }
  }
}

يتم تعريف ImyService كما هو موضح هنا:

[ServiceContract]
public interface ImyService
{
  [OperationContract]
  [WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped)]
  MyServiceResult MyMethod(string p1, string p2);
}

ستتعرض هذه الخدمة لكل من تطبيقات عميل WP7 و iPhone. ولهذا السبب ، أعتقد أنني بحاجة إلى استخدام webhttpbinding. لقد تسبب هذا في استخدام الإعدادات التالية في ملف web.config الخاص بي:

<system.serviceModel>      
  <behaviors>
    <endpointBehaviors>
      <behavior name="myServiceBehavior">
        <webHttp />
      </behavior>
    </endpointBehaviors>
    <serviceBehaviors>
      <behavior name="">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="false" />
      </behavior>
    </serviceBehaviors>
  </behaviors>

  <serviceHostingEnvironment 
    aspNetCompatibilityEnabled="true"   
    multipleSiteBindingsEnabled="true" />
  <services>
    <service name="myService">
      <endpoint address="" 
        behaviorConfiguration="myServiceBehavior" 
        binding="webHttpBinding" 
        contract="ImyService" />
    </service>
  </services>
</system.serviceModel>

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

لا يمكن العثور على عنصر نقطة النهاية الافتراضي الذي يشير إلى عقد "myServiceProxy.ImyService" في قسم تكوين عميل ServiceModel. قد يكون هذا لأنه لم يتم العثور على ملف تكوين للتطبيق الخاص بك ، أو لأنه لا يمكن العثور على عنصر نقطة نهاية مطابقة لهذا العقد في عنصر العميل.

ما الخطأ الذي افعله؟ يبدو أن هذا يجب أن يكون شيئًا واضحًا جدًا. شكرا لك على مساعدتك.

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

المحلول

هل قمت بنسخ الملف "servicereferences.clientConfig" في مشروع Windows Phone 7 الخاص بك؟ هذا الملف في مشروع WCF الخاص بك. أيضا ، يدعم عملاء WP7 basichttpbinding فقط. لذلك ، قد ترى ملف "servicereferences.clientconfig" فارغ ما لم تكن قد انتقلت إلى basichttpbinding

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