এই ডাব্লুসিএফ ত্রুটির অর্থ কী: "কাস্টম সরঞ্জাম সতর্কতা: ডাব্লুএসডিএল: পোর্টটাইপ আমদানি করা যায় না"


85

আমি আমার সমাধানে একটি ডাব্লুসিএফ পরিষেবা গ্রন্থাগার প্রকল্প তৈরি করেছি এবং এর সাথে পরিষেবা উল্লেখ রয়েছে। আমি ক্লাস লাইব্রেরি থেকে পরিষেবাগুলি ব্যবহার করি, তাই ক্লাস লাইব্রেরি ছাড়াও আমার ডাব্লুপিএফ অ্যাপ্লিকেশন প্রকল্পের রেফারেন্স রয়েছে। পরিষেবাগুলি সরাসরি সামনে সেট আপ করা হয় - কেবলমাত্র অ্যাসিঙ্ক পরিষেবা ফাংশন পেতে পরিবর্তিত হয়।

সবকিছু ঠিকঠাক কাজ করছিল - যতক্ষণ না আমি নিজের পরিষেবা উল্লেখগুলি আপডেট করতে চাই। এটি ব্যর্থ হয়েছে, তাই আমি অবশেষে পিছনে ঘুরিয়ে আবার চেষ্টা করেছি, তবে এটি পরেও ব্যর্থ হয়েছিল! সুতরাং - পরিষেবা রেফারেন্স আপডেট করে তাতে কোনও পরিবর্তন না করে ব্যর্থ হয়। কেন ?!

আমি যে ত্রুটি পেয়েছি তা হ'ল:

Custom tool error: Failed to generate code for the service reference 
'MyServiceReference'.  Please check other error and warning messages for details.   

সতর্কতা আরও তথ্য দেয়:

Custom tool warning: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension: 
System.ServiceModel.Description.DataContractSerializerMessageContractImporter
Error: List of referenced types contains more than one type with data contract name 'Patient' in  
namespace 'http://schemas.datacontract.org/2004/07/MyApp.Model'. Need to exclude all but one of the 
following types. Only matching types can be valid references: 
"MyApp.Dashboard.MyServiceReference.Patient, Medski.Dashboard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" (matching)
"MyApp.Model.Patient, MyApp.Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" (matching)
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='ISomeService']

দুটি অনুরূপ সতর্কতাও বলছে:

Custom tool warning: Cannot import wsdl:binding
Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on.
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='ISomeService']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpBinding_ISomeService']  

এবং একই জন্য:

Custom tool warning: Cannot import wsdl:port .. 

আমি এই সমস্ত বিভ্রান্তিকর বলে মনে করি .. পরিষেবা রেফারেন্সের মাধ্যমে আমার কাছে আসা ক্লায়েন্ট সাইড ড্যাশবোর্ডে আমার কোনও রোগী ক্লাস নেই। তবে এর অর্থ কি? এবং হঠাৎ কেন এটি দেখায়? মনে রাখবেন: আমিও কিছু পরিবর্তন করিনি!

এখন, এর সমাধানটি এখানে পাওয়া গেল , তবে এর অর্থ কী তা ব্যাখ্যা ছাড়াই। তাই; পরিষেবার জন্য "পরিষেবা রেফারেন্স কনফিগার করুন" তে আমি "রেফারেন্সড অ্যাসেমব্লিসিতে পুনরায় ব্যবহারের ধরণগুলি" চেকবাক্সটি টিক চিহ্ন ছাড়ি। এখনই পুনর্নির্মাণ এটি সমস্যা ছাড়াই দুর্দান্ত কাজ করে। তবে আমি আসলে কী বদলেছি? এটি কি আমার আবেদনে প্রভাব ফেলবে? এবং কখন এই পরীক্ষা করা উচিত? আমি যে ধরণের ডেটা কন্ট্র্যাক্ট সেটআপ করেছি সেগুলি পুনরায় ব্যবহার করতে চাই, কিন্তু আর কিছু নয়। আমি এখনও এই চেক না করে যাদের অ্যাক্সেস পেতে পারি?


ঠিক আছে, সেখানে MSDN (চালু অল্প ব্যাখ্যা msdn.microsoft.com/en-us/library/bb628653.aspx )। তবে কারও কি এর থেকে আরও ভাল ব্যাখ্যা আছে? এটি কীভাবে আমি সেট আপ করা ডেটা কন্ট্রাক্টকে বোঝায়?
stiank81

উত্তর:


37

আপনি যখন কোনও পরিষেবা রেফারেন্স যুক্ত করেন, সেবার দুটি ধরণের উপায় যা পরিষেবা ব্যবহার করে তা পরিচালনা করা যায়:

  • প্রকারগুলি একটি dll এ সংরক্ষণ করা হয়, এবং যে dll ক্লায়েন্ট এবং সার্ভার অ্যাপ্লিকেশন উভয় থেকে রেফারেন্স করা হয়।
  • প্রকারগুলি ক্লায়েন্ট দ্বারা রেফারেন্স করা কোনও dll তে নেই। সেক্ষেত্রে যে সরঞ্জামটি পরিষেবাটি রেফারেন্স তৈরি করে, সেগুলি রেফারেন্স। সি ফাইলগুলিতে তৈরি করবে।

অনেকগুলি জিনিস ভুল হতে পারে। আমরা দেখতে পেয়েছি যে সরঞ্জামটি ক্র্যাশ হয়ে গেলে পরিষেবা রেফারেন্সটি মুছতে এবং আবার শুরু করার জন্য এটি কখনও কখনও দ্রুত হয়।

আমরা পরিষেবা রেফারেন্স ব্যবহার বন্ধ করেছি। যে প্রকল্পগুলিতে আমাদের ক্লায়েন্ট এবং পরিষেবার নিয়ন্ত্রণ রয়েছে, আমরা এই স্ক্রিনকাস্টে বর্ণিত পদ্ধতিটি ব্যবহার করি ।


4
ধন্যবাদ! আমি গতকালই সেই স্ক্রিনকাস্টটি পেয়েছি। এটি দেখেছি, এবং এটি ছিল সত্যই চোখের ওপেনার! আমি একবার বেসিকগুলি স্থানটিতে পেয়ে গেলে সেই কাঠামোয় চলে যাওয়ার পরিকল্পনা করছি। মনে হচ্ছে আপনি যে একই সমস্যার মুখোমুখি হচ্ছেন সেগুলির সাথে আপনি লড়াই করছেন। আমিও প্রায়শই যখন কোনও অদ্ভুতভাবে ভুল হয়ে যায় তখন পরিষেবাগুলি উল্লেখগুলি মুছতে এবং পড়তে শেষ করি এবং এটি কোনও ভাল লক্ষণ নয় .. বর্ণিত আর্কিটেকচারের প্রত্যাশা সাহায্য করবে!
stiank81

আপনি যখন সিলভারলাইট 5 এর সাথে কোনও পলিংডুপ্লেক্স বাঁধাই ব্যবহার করছেন তখন কি কেউ ওয়েব সার্ভিস হাতে লিখে লিখতে সক্ষম হয়েছে?
রিচার্ড বি

157

আমি আমার উত্তরটি এখানে পেয়েছি: http://www.lukepuplett.com/2010/07/note-to-self-don-let-wcf-svcutil-reuse.html

দীর্ঘ গল্পের সংক্ষিপ্ত: আমি উন্নত মেনু থেকে রেফারেন্স অ্যাসেম্বলিতে পুনরায় ব্যবহারের ধরণগুলি পরীক্ষা করেছি ।


আমি জানি না এটির বিষয়টি কিনা তবে আমি এমভিসি ব্যবহার করি না, তবে ওয়েব ফর্মগুলি।


4
ভিএস 2012 এর পুনঃসূচনাও প্রয়োজন
জর্জ ফিলিপোকোস

দেখতে আগ্রহী, তবে লিঙ্কটি এখন মারা গেছে, দয়া করে আপনার অন্য কোথাও থাকলে ভাগ করুন
ক্রিস

4
VS2013 এর অধীনে একটি এমভিসি 3 প্রকল্পে কাজ করে (কোনও পুনরায় আরম্ভের প্রয়োজন নেই)।
পাভেল ক্রাকওইয়াক

4
+1 - কেবলমাত্র রেফারেন্সের জন্য: এই পরিবর্তনটি করতে, প্রকল্পটি যে সেবামূলক পরিষেবাটি ব্যবহার করে সেটিতে ডান ক্লিক করুন এবং 'পরিষেবা রেফারেন্স কনফিগার করুন ...' নির্বাচন করুন
গ্র্যান্ডমাস্টারফ্লুশ

4
"দীর্ঘ গল্পের সংক্ষিপ্ত" এর পরে আর কিছুই ভাল নয় :)
রন

10

আমি আজ এই সমস্যা ছিল। আমার ভুলটি খুঁজে পেতে আমার পুরো একদিন লেগেছিল। আশা করি এটা সাহায্য করবে.

আমার শ্রেণি যা আমদানি করতে সক্ষম হয় নি তার একটি কাটম এনাম ধরণের সম্পত্তি রয়েছে। এই সম্পত্তিটিকে ডেটা মেম্বার হিসাবে চিহ্নিত করা হয়েছে এবং এনামকে ডেটা কন্ট্রাক্ট হিসাবে চিহ্নিত করা হয়েছে। এখন পর্যন্ত সবকিছু ঠিক আছে। আমি শুধু প্রতিটি এনাম সদস্যকে এনামমেমবার হিসাবে চিহ্নিত করতে ভুলে গেছি।

সুতরাং আমি পরিবর্তন

[DataContract]
public enum SortMethodType
{
    Default = 0,
    Popularity = 1,
    ReleaseDate = 2,
    PublishedDate = 3,
    TranslatedTitle = 4,
    OriginalTitle = 5,
    UserRating = 6,
    Duration = 7
}

এটি:

[DataContract]
public enum SortMethodType
{
    [EnumMember]
    Default = 0,
    [EnumMember]
    Popularity = 1,
    [EnumMember]
    ReleaseDate = 2,
    [EnumMember]
    PublishedDate = 3,
    [EnumMember]
    TranslatedTitle = 4,
    [EnumMember]
    OriginalTitle = 5,
    [EnumMember]
    UserRating = 6,
    [EnumMember]
    Duration = 7
}

এবং অবশেষে এটি কাজ করে!


8

রেফারেন্স যুক্ত করার সময় উন্নত বৈশিষ্ট্যগুলিতে যান এবং চেকলিস্ট থেকে "System.Window.Browser" সরান, এটি সমস্যা সমাধান করে।


ধন্যবাদ! আর সার্ভিস রেফারেন্স ব্যবহার করা হচ্ছে না - @ শিরাজের উত্তর থেকে স্ক্রিনকাস্টে বর্ণিত ম্যানুয়াল পদ্ধতিটি করা। তবে এটি যাইহোক জেনে ভাল লাগলো!
stiank81

8

এটি অদ্ভুত লাগতে পারে তবে রেফারেন্সগুলি মুছে ফেলা, তারপরে ভিজ্যুয়াল স্টুডিওটি বন্ধ করে এবং এটি আবার খোলার এবং অবশেষে পুনরায় উল্লেখগুলি যুক্ত করে আমি ঠিক করেছি।

আমি মনে করি কাস্টম টুল জিনিসটি আবার চালু করার দরকার ছিল বা কিছু।


4
আপনি যদি রেফারেন্সটি মোছার পরেও সমস্যাটি নির্ধারণের জন্য দৃ are় প্রতিজ্ঞ হন তবে আমি আপনাকে দৃ strongly়ভাবে একটি নতুন প্রকল্প তৈরি করার পরামর্শ দিচ্ছি এবং রেফারেন্সটি এটি কার্যকর কিনা তা যুক্ত করুন add এটি এমন একটি ত্রুটি প্রকাশ করতে পারে যা আপনি আপনার বিদ্যমান প্রকল্পে দেখেন না বা এটি কেবল কাজ করতে পারে
সাইমন_উইভার

4

এটি অন্য বিকাশকারী মেশিনে কাজ করার সময় আমি ক্রমাগত এই ত্রুটিটি জুড়ে চলেছি। যদিও আমি আমার ভার্চুয়াল মেশিনের সর্বত্র একজন পূর্ণ অ্যাডমিন, আমি ভিজ্যুয়াল স্টুডিও বন্ধ করার চেষ্টা করেছি এবং 'রান অ্যাড অ্যাডমিনিস্ট্রেটর' দিয়ে পুনরায় খোলার চেষ্টা করেছি এবং এটি যাদুতে কাজ করেছে।

শুভকামনা।


2

আমি ভিজ্যুয়াল স্টুডিও (ভিএস) ২০১০ থেকে ২০১৩ থেকে আমার সমাধানটি আপগ্রেড করার পরে এবং প্রতিটি প্রকল্পের নেট নেট ফ্রেমওয়ার্ককে ৪ থেকে ৪.৫.১ এ পরিবর্তন করার পরে আমি এই সতর্কতা পেয়েছি। আমি ভিএস বন্ধ করে দিয়ে আবার খুললাম এবং সতর্কবাণীগুলি চলে গেল।


এটি আমাকে সহায়তা করেছিল, তবে আমি নেট .৪.২.২ থেকে ৪.6 গা এ পরিবর্তন করেছি!
জিমনেমিক্স

1

'রেফারেন্স অ্যাসেমব্লিতে পুনরায় ব্যবহারের ধরণগুলি' বন্ধ করার একটি নেতিবাচক দিকটি এটি দ্ব্যর্থক রেফারেন্স সহ সমস্যা সৃষ্টি করতে পারে। এটি সার্ভিস রেফারেন্সের কারণেই আবার সেই জিনিসগুলি পুনরায় রেফারেন্স .cs ফাইলগুলিতে তৈরি করার কারণে হয় এবং আপনার কোডটি পরিষেবাটি বাস্তবায়িত করে মূল নামস্থান থেকে তাদের রেফারেন্স করে।

যখন এই পরিস্থিতি দেখা দেয় আমি 'নির্দিষ্ট রেফারেন্সড অ্যাসেমব্লিতে পুনরায় ব্যবহারের ধরণগুলি পরীক্ষা করা' দরকারী বলে মনে করি যা আমাকে কেবল অস্পষ্ট রেফারেন্সগুলির সাথে বাছাই করতে দেয়, যা সমস্যাটিকে সেইভাবে দ্রুত সমাধান করে।

আশা করি এটি অন্য কাউকে সাহায্য করবে।


0

আমার ডাব্লুসিএফ পরিষেবার ইন্টারফেসগুলি একটি সমাবেশে রয়েছে, বাস্তবায়ন অন্যটিতে রয়েছে এবং পরিষেবা রেফারেন্সটি অন্য একটি সমাবেশে রয়েছে, পরিষেবা রেফারেন্সের ক্লায়েন্টদের থেকে পৃথক। আমি এনামে ডেটা কন্ট্রাক্ট প্রয়োগ করার পরেই ত্রুটি বার্তাটি পেয়েছি। আমি এনামের ক্ষেত্রগুলিতে এনামমেমার প্রয়োগ করার পরে, সমস্যার সমাধান হয়েছে।


0

যদি সন্দেহ হয় যে আপনার পরিষেবায় কোনও সমস্যা নেই (যেমন এনামগুলির সাথে সমস্যা, বা অন্যদের দ্বারা বর্ণিত হিসাবে সিরিয়ালবিহীন ক্লাস) তবে নতুন রেফারেন্স সহ একটি নতুন প্রকল্প তৈরি করার চেষ্টা করুন ।

আমি সিলভারলাইট 5 ব্যবহার করছি এবং আমি বেশ কয়েকবার রেফারেন্সটি মুছতে এবং পুনরায় তৈরি করার চেষ্টা করেছি। reference.csফাইল মাত্র সম্পূর্ণরূপে এসেছেন প্রতিটি সময় খালি এবং এটা আক্ষরিক বছর ধরে আমি এটা তৈরি চাই তাই প্রশ্ন বাইরে ছিল জিনিসটা কি পরিষেবাতে পরিবর্তন করেছে চেষ্টা ছিল।

আমি লক্ষ্য করেছি যে ত্রুটিটিতে 2.0.5.0 এর উল্লেখ রয়েছে। এখন আমি জানি না এটি আসলে সিলভারলাইট সংস্করণের সাথে প্রাসঙ্গিক কিনা, তবে এটি আমাকে কেবল একটি নতুন প্রকল্প তৈরি করার কথা ভাবায় এবং তারপরে হঠাৎ সবকিছু কাজ করে।

সতর্কতা 2 কাস্টম টুল সতর্কতা: ডাব্লুএসডিএল: পোর্টটাইপ আমদানি করা যায় না বিশদ: ডাব্লুএসডিএল আমদানি এক্সটেনশান চালানোর সময় একটি ব্যতিক্রম ছুঁড়ে ফেলা হয়েছে: সিস্টেম.সোর্সোমোডেল.ডেস্ক্রিপশন.ডাটাঅন্ট্রেক্টসরিয়ালিজারম্যাসেজ কনট্র্যাক্ট ইমম্পোর ত্রুটি: ফাইল বা অ্যাসেম্বলি 'সিস্টেম.এক্সএমএল, সংস্করণ = 2.0.5.0, লোড করা যায়নি সংস্কৃতি = নিরপেক্ষ, পাবলিককি টোকেন = 7cec85d7bea7798e 'বা এর অন্যতম নির্ভরতা। সিস্টেম নির্দিষ্ট ফাইল খুঁজে পাচ্ছি না. এক্সপথ থেকে ত্রুটির উত্স: // ডাব্লুএসডিএল: সংজ্ঞাগুলি [@targetNamespace = ''] / ডাব্লুএসডিএল: পোর্ট প্রকার [@ নাম = 'ইশপপিংকার্ট']


0

আমি আমার প্রকল্পটি দেখছিলাম এবং আমারও একই সমস্যা ছিল। এটি ডাব্লুসিএফ বনাম ওয়েব সাইটে একই ডিএলএল এর বিভিন্ন সংস্করণে পরিণত হয়েছিল। ওয়েব সাইটের ডিএলএল এর একটি নতুন সংস্করণ ছিল এবং পরিষেবাটি ডিএলএল এর একটি পুরানো সংস্করণ উল্লেখ করেছে। একবার তারা সবাই সিঙ্কে ছিল সবাই ভাল কাজ করেছিল।


0

আমি একই ত্রুটি অভিজ্ঞতা। আমি কী ভুল হচ্ছে তা জানার চেষ্টা করে প্রায় এক দিন সংগ্রাম করেছি। আমার জন্য ক্লুটি হ'ল সতর্কতাগুলি যা ভিএস নিক্ষেপ করছিল। এটি বেশ কয়েকদিন আগে ইয়াহু.ইউই.কম্প্রেসর.ডিল, যে লাইব্রেরিটি আমি যুক্ত করেছি এবং মুছে ফেলেছিলাম (কেননা আমি এটি ব্যবহার না করার সিদ্ধান্ত নিয়েছিলাম) এর সাথে এক ধরণের ম্যাপিং দেওয়ার চেষ্টা করছিলাম। এটি হতবাক ছিল কারণ লাইব্রেরিটি সেখানে ছিল না তবে কোনওভাবে এটি উল্লেখ করার চেষ্টা করছে।

অবশেষে, আমি এই ডেলটিকে ট্র্যাশ থেকে পুনরুদ্ধার করব এবং তারপরে আমি আমার পরিষেবা রেফারেন্সটি সফলভাবে আপডেট করতে পারলাম।


0

ভবিষ্যতে এখানে যে কারও কাছে আমার একই ত্রুটি ছিল তবে সংস্করণ সমস্যাগুলির কারণে, দুটি ভিন্ন উপায়ে।

আমার কাছে দুটি ডাব্লুসিএফ পরিষেবা এবং দুটি ক্লায়েন্ট অ্যাপ্লিকেশন রয়েছে যা পরিষেবা রেফারেন্সের মাধ্যমে কথা বলে। আমি উভয় পক্ষের একটি নুগেট প্যাকেজ আপডেট করেছি এবং পরিষেবা রেফারেন্সটি আপডেট করার চেষ্টা করেছি এবং এই ত্রুটি পেয়েছি।

মোছা কোনও উপকারে আসেনি। "পুনরায় পুনর্বিবেচনা সমাবেশগুলি" অপসারণ করা পছন্দসই নয় কারণ আমার সেগুলি পুনরায় ব্যবহার করা দরকার - এটাই পুরো বিষয়টি।

শেষ পর্যন্ত, দুটি পৃথক সমস্যা ছিল:

1) আমার বিশ্বাস, প্রথম সংখ্যাটি ছিল ভিজ্যুয়াল স্টুডিওর ক্যাচিংয়ের সমস্যা। আমি সাবধানতার সাথে সমস্ত রেফারেন্সে গিয়েছিলাম এবং কোনও সমস্যা খুঁজে পাই নি তবে এটি ফাইলের পূর্ববর্তী সংস্করণটি খুঁজে পেতে অক্ষম বলে জানিয়েছে। আমি সমস্ত নুগেট প্যাকেজ আনইনস্টল করেছি, ভিজ্যুয়াল স্টুডিওগুলি পুনরায় শুরু করেছি এবং সেগুলি পুনরায় ইনস্টল করেছি। কাজের রেফারেন্স আপডেট করে Upd

2) দ্বিতীয় ইস্যুটি নির্ভরতা ইস্যুর কারণে হয়েছিল। আমি উভয় পক্ষের নুগেট প্যাকেজ আপডেট করেছি এবং সমস্ত কিছু সঠিক দেখা গেছে, তবে একটি চিহ্নযুক্ত নির্ভরতা সিঙ্কের বাইরে ছিল of উদাহরণ:

প্যাকেজ ফু ভি 1 উল্লেখ বার ভি 1। রেফারেন্স আপডেট না করেই ফু ও বারকে v2 এ স্বাধীনভাবে আপডেট করা সম্ভব। আপনি যদি ফু এবং বার ভি 2 উভয়ই ইনস্টল করেন তবে পরিষেবা রেফারেন্স সরঞ্জামটি ফু ভি 2 কে স্ক্যান করবে, বার ভি 1 এর উল্লেখ দেখুন এবং ব্যর্থ হবেন কারণ এটি পুরানো সংস্করণ খুঁজে পাচ্ছে না। আপনি যদি প্রতিটি প্যাকেজের জন্য আপনার dll এর সংস্করণ নম্বর আপডেট করেন তবে এটি সঠিকভাবে প্রতিবেদন করা হয়েছে। অ্যাপ্লিকেশন তৈরিতে ভিজ্যুয়াল স্টুডিও এবং এমএসবিল্ডের কোনও সমস্যা হবে না তবে পরিষেবাটির রেফারেন্সটিতে সবকিছু সমাধানের চেষ্টা করার জন্য ভয়ানক সময় আসবে।

আমি আশা করি এটা কারো সাহায্যে লাগবে.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.