استثناء في إنشاء خدمة WCF باستخدام MSMQIntegrationBinding

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

  •  21-09-2019
  •  | 
  •  

سؤال

جهازي هو Windows 7 Ultimate (64 بت). لقد قمت بتثبيت MSMQ وفحصت أنه يعمل بشكل جيد (ركض بعض رموز العينة لـ MSMQ).

عندما أحاول إنشاء خدمة WCF باستخدام فئة MSMQIntegrationBinding ، أحصل على الاستثناء أدناه:

"حدث خطأ أثناء فتح قائمة الانتظار: قائمة الانتظار غير موجودة أو ليس لديك أذونات كافية لأداء العملية. (-1072824317 ، 0xc00e0003). لا يمكن إرسال الرسالة أو استلامها من قائمة الانتظار. التشغيل. تأكد أيضًا من توفر قائمة الانتظار لفتح مع وضع الوصول المطلوب والترخيص ".

أقوم بتشغيل Visual Studio في وضع المسؤول وأمنح تصريحًا صريحًا لنفسي عبر عنوان URL ACL باستخدام: netsh http add urlaCl url =http: //+: 80/ المستخدم = المجال المستخدم

أدناه هو الرمز:

 public static void Main()
    {         
        Uri baseAddress = new Uri(@"msmq.formatname:DIRECT=OS:AJITDELL2\private$\Orders");
        using (ServiceHost serviceHost = new ServiceHost(typeof(OrderProcessorService), baseAddress))

        {

            MsmqIntegrationBinding serviceBinding = new MsmqIntegrationBinding();
            serviceBinding.Security.Transport.MsmqAuthenticationMode = MsmqAuthenticationMode.None;
            serviceBinding.Security.Transport.MsmqProtectionLevel = System.Net.Security.ProtectionLevel.None;
            //serviceBinding.SerializationFormat = MsmqMessageSerializationFormat.Binary;
            serviceHost.AddServiceEndpoint(typeof(IOrderProcessor), serviceBinding, baseAddress);
            serviceHost.Open();

            // The service can now be accessed.
            Console.WriteLine("The service is ready.");
            Console.WriteLine("The service is running in the following account: {0}", WindowsIdentity.GetCurrent().Name);
            Console.WriteLine("Press <ENTER> to terminate service.");
            Console.WriteLine();
            Console.ReadLine();

            // Close the ServiceHostBase to shutdown the service.
            serviceHost.Close();
        }
    }

يمكنك الرجاء المساعدة؟

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

المحلول

تأكد من إنشاء قائمة انتظار "الطلبات" في MSMQ.

في Windows Server 2008 ، يمكنك القيام بذلك من Server Manager (انقر بزر الماوس الأيمن على جهاز الكمبيوتر الخاص بي وتحديد إدارة) ، ثم الميزات -> قائمة انتظار الرسائل -> قوائم الانتظار الخاصة. انقر بزر الماوس الأيمن على قوائم الانتظار الخاصة وأضف قائمة انتظار "الطلبات" هناك.

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

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