لماذا لا يمكنني الاتصال إلى خدمة WCF مع صافي.tcp ولكن لا يمكن مع http?

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

  •  03-07-2019
  •  | 
  •  

سؤال

لدي خدمة WCF تشغيل IIS مع ServiceHostFactory.انها تعمل بشكل جيد مع WSHttpBinding ولكن بسبب السرعة و كل شيء يجري على نفس الشبكة (أي جدران الحماية) كنت ترغب في تسريع الأمور قليلا باستخدام NetTcpBinding بدلا من ذلك.

عندما كنت تحاول أن تفعل ذلك كنت تحصل على هذا الخطأ:

لا يمكن الاتصال إلى الشبكة.tcp://اللغة العربية / الدراسات الإسلامية.xxx.yyy/MyService.svc.محاولة الاتصال استغرقت فترة زمنية 00:00:01.0464395.TCP رمز الخطأ 10061:لا اتصال يمكن لأن الجهاز الهدف رفض بنشاط عليه×.x.x.س:808.

أنا باستخدام SecurityMode.None فقط للتأكد من أن ليس لي الشد أيضا حاولت أي من هؤلاء على محاولات:

binding.Security.Message.ClientCredentialType = MessageCredentialType.None;
binding.Security.Message.ClientCredentialType = TcpClientCredentialType.Windows;,

أيضا أود أن أشير إلى أنني سحب تماما lof البيانات من خدمة المكالمات, لذلك أنا أيضا وضعت هذه (سواء على http و tcp محاولات وضع maxMessageSize إلى 1000000)

binding.MaxReceivedMessageSize = maxMessageSize;
binding.ReaderQuotas.MaxArrayLength = maxMessageSize;

وينبغي أن يكون من السهل جدا الحصول على عمل ، وذلك ما أنا في عداد المفقودين ؟

تحديث:لقد تم إضافة منفذ TCP 808 إلى الموقع الهوية وحاول مرة أخرى.الآن أنا الحصول على هذا الخطأ:

كنت قد حاولت أن إنشاء قناة الخدمة التي لا تدعم .صافي تأطير.فمن الممكن أن كنت تواجه HTTP نقطة النهاية.

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

المحلول

وراجع <لأ href = "http://bloggingabout.net/blogs/marc/archive/2007/10/23/wcf-hosting-non-http-protocols-in-iis-7-0.aspx" يختلط = "noreferrer"> هذا المنصب على تمكين الارتباطات غير HTTP في IIS 7.0. افتراضيا، لديك لتمكين صراحة net.tcp في IIS 7.0.

وآمل أن يساعد هذا.

وUPDATE:

وشهدت تعليقك - للأسف، لا يتم اعتماد net.tcp في IIS 6.0. تحقق من هذا الرابط الذي يفصل الارتباطات WCF دعم لمختلف المضيفين (بما في ذلك تم استضافة النفس، وIIS). يبدو فقط الارتباطات HTTP تعمل في IIS 6.0.

نصائح أخرى

إذا كنت تستخدم ويندوز فيستا، ثم ضمان WAS وNet.Tcp المستمع الخدمات محول التشغيل.

لأي شخص أن يتعثر عبر هذا دليل على المتاعب اطلاق النار صافي.tcp WCF القضايا مثل هذا:

  1. تحقق من أن صافي.tcp هو تمكين البروتوكول الموقع (في IIS, انقر بزر الماوس الأيمن فوق الموقع ، انتقل إلى إعدادات متقدمة ، وضمان تمكين بروتوكولات يشمل "صافي.tcp"
  2. لست متأكدا إذا كان هذا هو جنون العظمة شيء, أود أيضا أن يكون دائما في حاجة إلى تمكين صافي.tcp للموقع عن طريق سطر الأوامر وكذلك الخطوة 1.افتح موجه الأوامر ، c:\windows\system32\inetsrv, أدخل appcmd.exe set app "NameOfWebsite/" /enabledProtocols:http,net.tcp
  3. تحقق من أن الارتباطات موقع ويب في IIS الدخول الصافية.tcp, و أنك لا بد أن رقم المنفذ الصحيح (بالنسبة لي انا استخدم 9000:* كما ملزمة ميناء 9000).أيضا التحقق من أن أي مواقع أخرى في IIS تستخدم نفس الشبكة.tcp الملزمة إلى أن ميناء
  4. تحقق من أن "صافي.TCP المستمع محول" تشغيل الخدمة.

القيام به.

وعندما أبدأ Net.Tcp المستمع خدمة محول، خدمة يسير على ما يرام بالنسبة لي.

ويمكن أن يكون شيء بسيط مثل قواعد جدار الحماية على المضيف خدمة تنكر ميناء 808؟

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

وكنت أعاني من هذه المسألة أيضا في إطار Server 2008 R2

وفقط تأكد من تشغيل الخدمة Net.Tcp ميناء مشاركة أيضا، كما هو تبعية المستمع محول Net.Tcp.

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